自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 数据结构课设--学生信息管理系统

/*************************************** *版权所有 (C)2017,renzexi*文件名称:action.h *文件标识:无 *内容摘要:定义数据和函数声明 *其他说明:无 *当前版本:V1.0 *作者:任泽西 *完成时间:20171222 *修改记录: 修改了重定义的错误*修改时间:20171222 *版本号

2017-12-22 11:06:36 2532

原创 数据结构大总结

First of all,脑子里想写出来的很多,不过碍于我的语文水平,“精炼”的短了些 emmmm.......  Secondly  正文:    时间过得飞快,转眼间为期一学期的数据结构课已经接近尾声了,从陌生到了解,再从了解到熟知,这一个学期的学习成果显而易见。在学期末这个节点上,经过贺老师的提醒,觉得最后的大总结是很有必要的。  临近大二开学时,被莫名其妙的拉近一个群,然后知道

2017-12-14 10:49:33 302

原创 第十周 项目4 - 线索化二叉树(中序)

本文是数据结构基础系列(6):树和二叉树中第14课时线索二叉树的例程。#include #include #define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; int ltag,rtag; //增加的线索标记 struct node *lch

2017-12-22 13:05:42 228

原创 第十周 项目3 - 二叉树的构造

1.由先序序列和中序序列构造二叉树定理:任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定。证明(数学归纳法) 基础:当n=0时,二叉树为空,结论正确。 假设:设节点数小于n的任何二叉树,都可以由其先序序列和中序序列唯一地确定。 归纳:已知某棵二叉树具有n(n>0)个不同节点,其先序序列是a0a1…an−1;中序序列是b0b1…bk−1bkbk+1…bn

2017-12-22 13:03:32 245

原创 第十周 项目2 - 层次遍历算法

【二叉树的层次遍历算法】   实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。   请利用二叉树算法库。[参考解答](btreee.h见算法库)#include #include "btree.h"void LevelOrder(BTNode *b){ BTNode *p;

2017-12-22 09:15:22 213

原创 第十周 项目1 - 二叉树遍历非递归算法

【二叉树遍历的非递归算法】 实现二叉树的先序、中序、后序遍历的非递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 请利用二叉树算法库。[参考解答](btreee.h见算法库)#include #include "btree.h"void PreOrder1(BTNode *b){ BTNode

2017-12-22 09:13:01 191

原创 第三周 项目1 - 顺序表的基本运算

在数据结构的学习中,掌握基本运算是一个基础性的工作。这种“抽象”级别的成果,适用于各种应用场合,也是训练计算思维的根本依托之一。   在实践性的学习路线中,实践可以分为三个层次:验证性、设计性和综合性。验证性实验是最初步和基本的的,通过验证课堂讲的、书上写的内容,加深对相关知识的理解;设计性实验锻炼的是运用某些基本知识和原理解决问题的能力;而综合性实验则达到综合运用多方面的知识,解决实际问题的

2017-12-14 11:22:14 292

原创 第四周 项目6 - 多项式求和

提示:   1、存储多项式的数据结构     多项式的通式是pn(x)=anxn+an−1xn−1+...+a1x+a0。n次多项式共有n+1项。直观地,可以定义一个数组来存储这n+1个系数。以多项式p(x)=−3.4x10−9.6x8+7.2x2+x为例,存储这个多项式的数组如下图:   这里写图片描述     可以看出,这种方案适合对某些多项式的处理。但是,在处理一些次数高但项

2017-12-14 11:21:18 267

原创 第七周 项目3 - 负数把正数赶出队列

设从键盘输入一整数序列a1,a2,…an,试编程实现:当ai>0时,ai进队,当ai[cpp] view plain copy[参考解答] 说明——使用本文所用的环形队列的算法库(sqqueue.h)    #include   #include   #include "sqqueue.h"    

2017-12-14 11:13:36 226

原创 第八周(1) 项目3-顺序串算法

采用顺序存储方式存储串,实现下列算法并测试: (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString *&s, char c1, char c2); (2)试编写算法,实现将已知字符串所有字符倒过来重新排列。如ABCDEF改为FEDCBA。 void Invert(SqString &s) (3)从串s中删除其值等于c的所

2017-12-14 11:02:04 440

原创 第八周(1) 项目1 - 建立顺序串的算法库

顺序串算法库采用程序的多文件组织形式,包括两个文件:  1.头文件:sqString.h,包含定义顺序串数据结构的代码、宏定义、要实现算法的函数的声明;[cpp] view plain copy#ifndef SqString_H_INCLUDED  #define SqString_H_INCLUDED    #

2017-12-14 10:52:36 195

原创 第八周(1) 项目5 - 计数的模式匹配

【项目 - 计数的模式匹配】   采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0。提示:无论BF模式匹配算法,还是KMP算法,都是在找到子串substr后就退出了。解决这个问题,要查找完整个字符串,并将出现的次数记下来。改造这两个算法吧。  改造BF算法完成求解。#include #include "sqString.

2017-12-14 10:13:32 188

原创 第八周(1) 项目2 - 建立链串的算法库

链串算法库采用程序的多文件组织形式,包括两个文件:  1.头文件:liString.h,包含定义链串数据结构的代码、宏定义、要实现算法的函数的声明;[cpp] view plain copy#ifndef LISTRING_H_INCLUDED  #define LISTRING_H_INCLUDED    typedef

2017-12-13 11:05:48 257

原创 第七周 项目6 - 停车场模拟

设停车场是一个可停放n辆汽车的狭长死胡同,南边封口,汽车只能从北边进出(这样的停车场世间少有)。汽车在停车场内按车辆到达时间的先后顺序,最先到达的第一辆车停放在车场的最南端,依次向北排开。若车场内已停满n辆汽车,则后来的汽车只能在门外的候车场上等候,一旦有车开走,则排在候车场上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路(假定停车场内设有供车辆进出的便道,

2017-12-13 11:00:30 275

原创 第五周 项目3 - 括号的匹配

【项目 - 括号的匹配】 假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。 例如,输入2+(3+4)*2+{[3]}-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。提示: (1)遇到左括号入栈,遇到右括号后,出栈一个符号,看是否配对。若配对,继续,直到读完所有的符号,栈也正好为

2017-12-13 10:57:47 311

原创 第三周 项目3 求集合并集

假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。设计算法,用函数unionList(List LA, List LB, List &LC )函数实现该算法,求一个新的集合C=A∪B,即将两个集合的并集放在线性表LC中。提示: (1)除了实现unnionList函数外,还需要在main函数中设计代码,调用unionList进行

2017-12-13 10:54:36 265

原创 第二周 项目3—汉诺塔

#include   #define discCount 4  long move(int, char, char,char);  int main()  {      long count;      count=move(discCount,'A','B','C');      printf("%d个盘子需要移动%ld次\n", discCount, count);

2017-12-13 10:52:18 186

原创 第十一周 【项目5 - 迷宫问题之图深度优先遍历解法】

【项目 - 迷宫问题之图深度优先遍历解法】   设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。   (1)建立迷宫对应的图数据结构,并建立其邻接表表示。   (2)采用深度优先遍历的思路设计算法,输出从入口(1,1)点到出口(M,N)的所有迷宫路径。[模型建立]   将迷宫中的每一格作为一个顶点,相邻格子可以到达,则对应的顶点之间存在边相连。   例如,下面的

2017-12-07 10:27:31 210

原创 第十一周 纸上谈兵:“知原理”检验题目

1、设图的邻接矩阵为,则该图为__。 A. 有向图 B. 无向图 C. 强连通图 D. 完全图 2、已知一个图,如图1所示,则从顶点a出发按深度优先遍历则可以得到的一种顶点序列为__。 A. a,b,e,c,d,f B. a,c,f,e,b,d C. a,e,b,c,f,d D. a,e,d,f,c,b (图1) 3、画出图1的邻接矩阵和邻接表存储的示意

2017-12-07 10:26:42 345

原创 第十二周 Prim算法的验证

#include #include #include "graph.h"void Prim(MGraph g,int v){ int lowcost[MAXV]; //顶点i是否在U中 int min; int closest[MAXV],i,j,k; for (i=0; i//给lowcost[]和closest[]置初值 {

2017-12-07 10:24:59 193

原创 第十二周 Kruskal算法的验证

(图1) #include #include #include "graph.h"#define MaxSize 100typedef struct{ int u; //边的起始顶点 int v; //边的终止顶点 int w; //边的权值} Edge;void InsertSort(Edge E[],int

2017-12-07 10:22:36 176

原创 第十二周 Dijkstra算法的验证

#include #include #include "graph.h"#define MaxSize 100void Ppath(int path[],int i,int v) //前向递归查找路径上的顶点{ int k; k=path[i]; if (k==v) return; //找到了起点则返回 Ppath(path,k,v)

2017-12-07 10:18:57 142

原创 第十二周 Floyd算法验证

[Floyd算法实现] (程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)#include #include #include "graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=path[i][j];

2017-12-07 10:17:46 139

原创 第十二周 拓扑排序算法验证

[代码]#include #include #include "graph.h"void TopSort(ALGraph *G){ int i,j; int St[MAXV],top=-1; //栈St的指针为top ArcNode *p; for (i=0; in; i++) //入度置初值0

2017-12-07 10:15:29 142

原创 第十三周 【项目1 - 验证算法】

1、认真阅读并验证折半查找算法。请用有序表{12,18,24,35,47,50,62,83,90,115,134}作为测试序列,分别对查找90、47、100进行测试折半查找#include #define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType

2017-12-07 10:13:34 243

原创 第十三周 【项目2 - 二叉树排序树中查找的路径】

【项目 - 二叉树排序树中查找的路径】 设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。[参考解答] 专为本项目设计的算法体现在函数int SearchBST(…)和void SearchResult()中。#include #include #define MaxSize 100typedef int KeyType;

2017-12-07 10:12:13 155

原创 第十三周 【项目3 - 是否二叉排序树?】

【项目 - 是否二叉排序树?】 设计一个算法,判断给定的二叉树是否是二叉排序树。[参考解答] int JudgeBST()是设计的算法对应的实现。#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;type

2017-12-07 10:07:09 125

原创 第九周 【项目3 - 利用二叉树遍历思想解决问题】

【利用二叉树遍历思想解决问题】  假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试:   (1)计算二叉树节点个数;   (2)输出所有叶子节点;   (3)求二叉树b的叶子节点个数   (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。   (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是

2017-11-02 11:22:50 116

原创 第九周 【项目2 - 二叉树遍历的递归算法】

【二叉树遍历的递归算法】   实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 [参考解答]#include stdio.h>#include "btree.h"void PreOrder(BTNode *b) //先序遍历的递归算法{ if

2017-11-02 11:21:30 145

原创 第九周 【项目1 - 二叉树算法库】

二叉树的链式存储算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:btree.h,包含定义二叉树的链式存储数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef

2017-11-02 11:19:41 149

原创 第七周 项目5 -排队看病模拟

编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事:   (1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。   (2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。   要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:   (1)排队——输入排队病人的病历号,加入到病人排队队列中。   (2)就诊——

2017-11-02 11:10:41 255

原创 第七周 项目2 - 建立链队算法库

链队算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:liqueue.h,包含定义链队数据结构的代码、宏定义、要实现算法的函数的声明;[cpp] view plain copy#ifndef LIQUEUE_H_INCLUDED  #define LIQUEUE_H_INCLUDED    typedef 

2017-11-02 11:07:08 251

原创 第七周项目1 - 建立顺序环形队列算法库

下图是数据存储结构设计及各种操作实现的要点: 顺序环形队列算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:sqqueue.h,包含定义顺序环形队列数据结构的代码、宏定义、要实现算法的函数的声明:[cpp] view plain copy#ifndef SQQUEUE_H_INCLUDED  #de

2017-10-26 10:15:53 259

原创 第五周 项目2 - 建立链栈算法库

链栈算法库采用程序的多文件组织形式,包括两个文件:    1.头文件:listack.h,包含定义链栈数据结构的代码、宏定义、要实现算法的函数的声明;   #ifndef LISTACK_H_INCLUDED#define LISTACK_H_INCLUDEDtypedef char ElemType;typedef struct linknode{    El

2017-10-12 11:16:29 218

原创 第五周 项目1 - 建立顺序栈算法库

顺序栈算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:sqstack.h,包含定义顺序栈数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef SQSTACK_H_INCLUDED  #define SQSTACK_H_INCLUDED    #define MaxSize 100  typedef char ElemType;  ty

2017-10-12 10:55:14 116

原创 第四周 项目5- 循环双链表应用

【项目- 循环双链表应用】   设非空线性表ha和hb都用带头节点的循环双链表表示。设计一个算法Insert(ha,hb,i)。其功能是:i=0时,将线性表hb插入到线性表ha的最前面;当i>0时,将线性表hb插入到线性表ha中第i个节点的后面;当i大于等于线性表ha的长度时,将线性表hb插入到线性表ha的最后面。   请在实现算法时,除项目中给出的特殊要求,其余工作均可利用项目4完成的算

2017-09-28 11:20:30 205

原创 第四周 项目4 - 建设双链表算法库

双链表算法库算法库采用程序的多文件组织形式,包括两个文件:      1.头文件:dlinklist.h,包含定义双链表数据结构的代码、宏定义、要实现算法的函数的声明:[cpp] view plain copy#ifndef DLINKLIST_H_INCLUDED  #define DLINKLIST_H_INCLUDE

2017-09-28 11:14:44 203

原创 第四周 项目3 - 单链表应用

项目 - 单链表算法 (程序中利用了已经实现的单链表算法,头文件LinkList.h及其中函数的实现见单链表算法库)  1、设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)的单链表的所有结点逆置,即第一个结点的数据域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试。 [参考解答] (程序中利用了已经实现的单链表算法,头文件LinkL

2017-09-28 11:00:58 189

原创 第四周 项目2 - 建设“单链表”算法库

按照“0207将算法变程序”部分建议的方法,建设自己的专业基础设施算法库。这一周,建的是单链表的算法库。   算法库包括两个文件:   头文件:linklist.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;   源文件:linklist.cpp,包含实现各种算法的函数的定义      请采用程序的多文件组织形式,建立如上的两个文件,另外再建立一个源文件

2017-09-28 10:58:06 174

原创 第四周项目一 建立单链表

#include   #include   typedef int ElemType;  typedef struct LNode        //定义单链表结点类型  {      ElemType data;      struct LNode *next;     //指向后继结点  } LinkList;    void CreateListF(Lin

2017-09-28 10:54:31 179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除