- 博客(57)
- 收藏
- 关注
原创 数据结构课程设计源代码
主程序main()#include "ds.h"#include #include #include #include using namespace std;LinkList::LinkList(){ head=(LNode *)malloc(sizeof(LNode)); head->next=NULL; length=0;}bool LinkList::IsCre
2015-12-24 12:34:14
2139
原创 数据结构学习心得
这周是十六周,专业课在这周末之前就都结课了。大二上学期的专业课比大一明显多了不少,随着专业知识的增多,我似乎也慢慢接受了计算机这个专业,曾经对计算机丝毫不感兴趣的我,竟然渴望成为一名优秀的IT女。 大一跟计算机关联最大的一门课应该就是c++了,不知道为什么,我内心对它特别的抵触,课本上的代码一点都看不进去,老师讲课的时候就精神恍惚,尤其是老师在详细的分析个别题的代码的时候,完全听不进去,当
2015-12-18 08:27:04
3407
1
原创 第十六周项目8—基数排序
#include #include #include #define MAXE 20 //线性表中最多元素个数#define MAXR 10 //基数的最大取值#define MAXD 8 //关键字位数的最大取值typedef struct node{ char data[MAXD]; //记录的关键字
2015-12-18 08:24:31
593
原创 第十六周项目7—简单基数排序
#include #include #define MaxSize 20#define MaxNum 100typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 Info
2015-12-18 08:18:43
523
原创 第十六周项目6—归并排序
#include #include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他
2015-12-18 08:16:09
377
原创 第十六周项目5—选择排序之堆排序
#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为Info
2015-12-14 17:25:33
431
原创 第十六周项目4—选择排序之堆排序
#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为Info
2015-12-14 17:24:04
425
原创 第十六周项目3—选择排序之直接排序
#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为Info
2015-12-14 17:21:24
371
原创 第十六周项目2—交换排序之快速排序
#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为Info
2015-12-14 17:14:47
455
原创 第十五周项目11—英文单词的基数排序
#include #include #include #define MaxLen 9 //单词的最大长度#define Radix 27 //基数rd为27,分别对应' ','a',…'z'typedef char String[MaxLen+1]; //定义String为字符数组类型typedef struc
2015-12-14 17:03:14
449
原创 第十五周项目10—归并排序算法的改进
#include #include #include #include #define MinLength 64 //最短分段长度typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key;
2015-12-14 16:59:42
341
原创 第十五周项目9—基数排序
#include #include #include #define MAXE 20 //线性表中最多元素个数#define MAXR 10 //基数的最大取值#define MAXD 8 //关键字位数的最大取值typedef struct node{ char data[MAXD]; //记录的关键字
2015-12-14 16:53:49
395
原创 第十五周项目8—归并排序
#include #include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他
2015-12-14 16:46:25
377
原创 第十五周项目7—选择排序之堆排序
#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为Info
2015-12-14 16:42:19
350
原创 第十五周项目6—交换排序之快速排序
1.以第1个元素作为基准#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; /
2015-12-14 16:34:42
421
原创 第十五周项目5—插入排序之希尔排序
1.希尔排序#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项
2015-12-14 16:15:23
385
原创 第十五周项目4—直接插入排序
1.直接插入排序#include #define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数
2015-12-07 16:56:48
378
原创 第十五周项目3—B-树的基本操作
实现B-树的基本操作。基于序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7}完成测试。 (1)创建对应的3阶B-树b,用括号法输出b树。 (2)从b中分别删除关键字为8和1的节点,用括号法输出删除节点后的b树。 #include #include #define MAXM 10 //定义B-树的最大的阶数typede
2015-12-07 16:40:08
458
原创 第十五周项目2—用哈希法组织关键字
#include #include #include #define N 15#define M 26typedef struct node //定义哈希链表的节点类型{ char *key; struct node *next;} LNode;typedef struct{ LNode *link;} HTType;
2015-12-07 16:38:07
407
原创 第十五周项目1—哈希表及其运算的实现
#include #define MaxSize 100 //定义最大哈希表长度#define NULLKEY -1 //定义空关键字值#define DELKEY -2 //定义被删关键字值typedef int KeyType; //关键字类型typedef char * InfoType; //其他
2015-12-07 16:33:42
335
原创 第十四周项目4—是否二叉排列树
#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node //记录类型{ KeyType key;
2015-11-30 16:56:14
330
原创 第十四周项目3—二叉树排序树中查找的路径
#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node //记录类型{ KeyType key;
2015-11-30 16:54:07
339
原创 第十四周项目2—验证算法
1.分块查找#include #define MAXL 100 //数据表的最大长度#define MAXI 20 //索引表的最大长度typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType key; //KeyType为关键字的数据
2015-11-30 16:37:39
367
原创 第十四周项目1—线性表的折半查找
1.折半查找#include #define MAXL 100typedef int KeyType;typedef char InfoType[10];typedef struct{ KeyType key; //KeyType为关键字的数据类型 InfoType data; //其他数据}
2015-11-30 16:31:38
413
原创 第十三周项目5—拓扑排序算法验证
#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
2015-11-23 16:59:06
428
原创 第十三周项目4—Floyd算法
#include #include #include "graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=path[i][j]; if (k==-1) return; //找到了起点则返回 Ppath
2015-11-23 16:56:24
313
原创 第十三周项目3—Kijkstra算法
#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(
2015-11-23 16:51:14
452
原创 第十三周项目2—最小生成树的Kruskal算法
#include #include #include "graph.h"#define MaxSize 100typedef struct{ int u; //边的起始顶点 int v; //边的终止顶点 int w; //边的权值} Edge;void InsertSort(Edge E[],int n) //
2015-11-23 16:42:29
464
原创 第十三周项目1—最小生成树的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<g.n; i++) //
2015-11-23 16:36:22
391
原创 第十二周项目3—图遍历算法实现
1、深度优先遍历——DFS#include #include #include "graph.h"int visited[MAXV];void DFS(ALGraph *G, int v){ ArcNode *p; int w; visited[v]=1; printf("%d ", v); p=G->adjlist[v].
2015-11-16 16:52:34
323
原创 第十二周项目2—操作用邻接表存储的图
#include #include #include "graph.h"//返回图G中编号为v的顶点的出度int OutDegree(ALGraph *G,int v){ ArcNode *p; int n=0; p=G->adjlist[v].firstarc; while (p!=NULL) { n++
2015-11-16 16:40:25
383
原创 第十二周项目1—图基本算法库
#include #include #include "graph.h"int main(){ MGraph g1,g2; ALGraph *G1,*G2; int A[6][6]= { {0,5,0,7,0,0}, {0,0,4,0,0,0}, {8,0,0,0,0,9},
2015-11-16 16:32:09
410
原创 第十一周项目2—用二叉树求解代数表达式
#include #include #include #include "btree.h"//用s[i]到s[j]之间的字符串,构造二叉树的表示形式BTNode *CRTree(char s[],int i,int j){ BTNode *p; int k,plus=0,posi; if (i==j) //i和j相同,意味着只有一个字
2015-11-09 17:22:41
425
原创 第十一周项目1—二叉树算法验证
(1)层次遍历算法的验证#include #include "btree.h"void LevelOrder(BTNode *b){ BTNode *p; BTNode *qu[MaxSize]; //定义环形队列,存放节点指针 int front,rear; //定义队头和队尾指针 front=rear=-1; //置队
2015-11-09 16:34:48
625
原创 第十周项目3—利用二叉树遍历思想解决问题
假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (2)输出所有叶子节点; (3)求二叉树b的叶子节点个数 (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。 (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似;②t1和t2之一为空
2015-11-02 17:18:12
437
原创 第十周项目2—二叉树的遍历递归算法
#include #include "btree.h"void PreOrder(BTNode *b) //先序遍历的递归算法{ if (b!=NULL) { printf("%c ",b->data); //访问根节点 PreOrder(b->lchild); //递归访问左子树 PreO
2015-11-02 16:55:06
415
原创 第十周项目1—二叉树的链式存储及基本运算
1.头文件:btree.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef BTREE_H_INCLUDED#define BTREE_H_INCLUDED#define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data;
2015-11-02 16:32:30
565
原创 第九周项目2—对称矩阵压缩存储的实现与应用
#include #include #define N 4//为N阶对称矩阵初始化存储数据的一维数组Bvoid Init(int *&b){ b = (int*)malloc(sizeof(int)*(N*(N+1)/2));}//返回存储在b[M]中,对应二维数组A[i][j]的值int Value(int b[], int i, int j){ if (i
2015-10-29 21:54:09
503
原创 第九周项目1—猴子选大王
【项目 - 猴子选大王(数组版)】 一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,最后一只出圈的猴子为大王。输入m和n,输出猴子离开圈子的顺序,从中也可以看出最后为大王是几号猴子。 要求采用数组作为存储结构完成。参考解答1] 在一个数组中,数组中用1表示猴子在圈中,用0表示猴子已
2015-10-26 16:29:41
466
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人