【数据结构学记笔记】
文章平均质量分 69
WKX@2010
在职金融IT男
展开
-
数据结构_图_邻接多重表做存储结构遍历无向图_C++实现
示例输入:a b c d e//节点名称(ctrl+z)6//边的数目0 1//每条边连接的两个顶点编号下同0 32 44 12 32 1示例输出:原创 2011-09-27 07:52:03 · 4246 阅读 · 3 评论 -
数据结构_数组与广义表_矩阵的十字链表存储稀疏矩阵相加
十字链表做存储结构实现矩阵相加,这个功能简单的程序调试了N久,数度想放弃,但想想还是想坚持了下来,指针跳来跳去的快把我跳晕了,各种细节,比如删除节点后要修改相应节点的指针以确保能正常输出。终于调通了,一道坎总算过去了,示例通过后连加注释的勇气都没了。算了,先贴出来吧。"crosslist.h"#includeusing namespace std;#defin原创 2011-10-24 23:55:14 · 2649 阅读 · 0 评论 -
数据结构_数组与广义表_链表的递归遍历
遍历广义表的准备工作:#includeusing namespace std;class ListNode{public: ListNode(); char name; ListNode *next;};ListNode::ListNode(){ next=NULL;}class LinkList{public: LinkLi原创 2011-10-20 09:15:34 · 1245 阅读 · 0 评论 -
数组与广义表_稀疏矩阵的压缩存储_三元组做存储结构_矩阵相乘
"head.h"#includeusing namespace std;#define MAX_MATRIXSIZE 20#define ElemType intclass Triple//三元组类{public: int i,j;//行列号原创 2011-10-18 00:18:09 · 1902 阅读 · 0 评论 -
数组与广义表_稀疏矩阵的压缩存储_三元组做存储结构_矩阵转置
"Matrix.h"#includeusing namespace std;#define MAX_MATRIXSIZE 20#define ElemType intclass Triple//三元组类{public: int i,j;//行原创 2011-10-18 00:16:19 · 2589 阅读 · 0 评论 -
数据结构_图_最短路径_弗洛伊德(Floyed)算法
"Floyed.h"#includeusing namespace std;#define MAX_VEX_NUM 20#define INFINITY INT_MAXclass Graph//图的存储结构{public: Graph();原创 2011-10-18 00:14:23 · 2502 阅读 · 0 评论 -
数据结构_图_邻接表做存储结构实现求无向图的连通分量_C++实现
调了一个晚上终于把这段程序给调通了,原来对孩子兄弟链表的理解有点偏差,还有就是对递归有了跟深刻的理解,当然最大的收获就是发现程序中错误的能力进一步提高,借助于Visual Stdio这个强大的编程环境,可以让我迅速地积累编程经验,快速的发现程序中隐含的漏洞,而且他强大的自定义功能原创 2011-09-27 23:52:14 · 4165 阅读 · 0 评论 -
数据结构_图_最小生成树算法之prime算法
长假最后一天,前六天时间基本上什么都没做,今天起了个大早决定在自习室度过,把“未竟的事业”完成,哈哈。。。数据结构进展奇慢,算法真的好难学,理解一个算法的实现过程还比较容易,真正把它写成代码可没那么容易了。这个算法竟然从早上8点写到现在才实现,解决了一些难以发现的小细节。感觉不错原创 2011-10-07 15:48:38 · 2546 阅读 · 0 评论 -
数据结构_图_求有向图的强连通分量
'head.h'#includeusing namespace std;#define MAX_VEX_NUM 20class ArcNode//记录一条弧 {public: ArcNode(); int headvex,tailvex; ArcNo原创 2011-10-07 16:00:05 · 2657 阅读 · 0 评论 -
数据结构_图_最小生成树算法之Kruskal算法
最小生成树的经典算法,用到了树与等价的知识,具体参见严蔚敏数据结构P175具体内容。"head.h"#include#includeusing namespace std;#define MAX_VEX_NUM 20#define MAX_EDGE_NU原创 2011-10-09 08:22:13 · 1668 阅读 · 0 评论 -
数据结构_图_求无向图的关节点
"head.h"#includeusing namespace std;#define MAX_VEX_NUM 20class ChildNode//存储以某顶点为边的一个顶点的另一个顶点{public: ChildNode(); int child原创 2011-10-10 23:01:17 · 3075 阅读 · 1 评论 -
数据结构_图_拓扑排序
"head.h"#includeusing namespace std;#define MAX_VEX_NUM 20class ArcNode//弧节点{public: ArcNode(); int tailnode; ArcNode *next;原创 2011-10-10 23:03:29 · 1772 阅读 · 1 评论 -
数据结构_图_有向无环图应用之求关键路径
"head.h"#include#includeusing namespace std;#define MAX_VEX_NUM 20//最大节点数class NextNode//存储弧节点相关信息//图以邻接表做存储结构{public: NextNo原创 2011-10-13 00:18:16 · 2173 阅读 · 0 评论 -
数据结构_图_最短路径_狄杰斯特拉(Dijkstra)算法
此算法没有采用《数据结构C语言版》中的存储结构,而是采用邻接表的方法存储图,经过改进,还能输出最短路径。"Dijkstra.h"#includeusing namespace std;#define MAX_VEX_NUM 20#def原创 2011-10-13 00:20:01 · 4775 阅读 · 0 评论 -
数据结构学习总结
今天终于把严蔚敏数据结构C语言版的最后一个算法搞定了,回想数据结构的学习经历,感慨颇多。之前听学长说数据结构很重要很重要,就下定决心要把它学好,前前后后把书看了三遍,严老师的视频也看了两遍,里面所有的算法都实现了一遍,每一遍看书,每一遍看视频都有新的好的发现。一块大石头放下了,把一些相关的代码都放在了博客中【数据结构学习笔记】一栏中了。 记得这本书是去年买的,买的时候有8成新,现在连原创 2011-11-16 01:31:00 · 3806 阅读 · 0 评论 -
数据结构_内部排序_链式基数排序
没做这个算法之前觉得静态链表没什么用,写了这个算法才发现原来静态链表是如此的巧妙,才发现之前的看法是多么的浅薄无知,看来以后还要更虚心了,嘿嘿...基数排序,关键是两个过程,分配和回收,分配是按关键字顺序将记录进行分类为,回收是将分配过程中顺序打乱的记录重新链接成静态链表。这样从按一定顺序对关键字进行分配和回收到最后就能得到一个有序序列。即为基数排序原理。"RadixSort.h"原创 2011-11-16 01:22:37 · 2535 阅读 · 0 评论 -
数据结构_内部排序_希尔排序_快速排序_堆排序_归并排序_地址排序
几种典型的排序算法,算法排序对象都为顺序表,还有一个基数排序的算法由于采用不同的存储结构就没有加在这个文件中,稍后会贴出其代码。"sort.h"#include#includeusing namespace std;typedef int ElemType;#define LISTLEN 100typedef struct SqList//顺序表{原创 2011-11-14 20:16:24 · 1965 阅读 · 2 评论 -
数据结构_数组与广义表_广义表的建立、遍历、复制、求深度
由一个存储着广义表信息的字符串建立一个广义表,并对其进行复制,求深度。递归真是奇妙无穷啊,有些看似很复杂的东西只要找到规律就能进行递归求解。让我不得不对那些发现规律利用规律创造新事物的人肃然起敬。其实在众多美丽的事物中,人的思想也是很美丽的,那些数学家,哲学家能在意识的世界创造出瑰丽的奇观,让无数后人敬仰不已,好多人不理解数学家和哲学家,认为他们太古板太疯狂,其实他们是被物质世界蒙蔽了双眼原创 2011-10-27 12:45:43 · 9768 阅读 · 4 评论 -
数据结构_查找_静态查找数表_构造次优查找树
"SecondOptimal.h"#includeusing namespace std;#define MAX_DATA_NUM 20//最大节点值typedef struct SSTable//静态查找表存储结构{ char name; int weight;}ElemType;typedef struct BiTreeNode//二叉链表存储结构{原创 2011-10-27 12:48:21 · 2951 阅读 · 0 评论 -
数据结构_查找_静态查找数表_二叉排序树
"BinarySortTree.h"typedef int ElemType;typedef enum{FALSE,TRUE}Status;typedef struct BitNode{ ElemType data; BitNode * lchild,*rchild; BitNode() { lchild=rchild=NULL; }}*BiTre原创 2011-11-01 10:02:10 · 1402 阅读 · 0 评论 -
数据结构_图_建立十字链表求有向图中每个顶点的入度出度并输出和它相关的弧_C++实现
示例输入:a b c d //每个顶点的名字 char型(CTRL+Z) //标示输入结束7 //有向图中弧的个数0 1原创 2011-09-24 16:32:50 · 5138 阅读 · 0 评论 -
数据结构_树_赫夫曼树及赫夫曼编码_C++实现
传说中的最优二叉树——赫夫曼(Huffman)树本例采用如下存储结构:实例:下面这个是严蔚敏《数据结构》C语言版上的赫夫曼编码存储结构我换了一种方式,开了一个栈然后反复用,具体见代码:"head.h"#inclu原创 2011-09-24 08:59:15 · 4196 阅读 · 0 评论 -
数据结构_树_二叉树的线索化_C++实现
"head.h"#include#define LINK 0//定义节点类型:指针#define THREAD 1//定于节点类型:线索using namespace std;///////////////////////二叉树树节点类class BitNo原创 2011-09-21 23:21:24 · 3826 阅读 · 1 评论 -
数据结构_树_二叉树的建立、遍历、复制与移除_二叉链表存储_C++实现
"head.h"#includeusing namespace std;class BitNode{public: BitNode(); char ch; BitNode *lchild,*rchild;};BitNode::BitNode(原创 2011-09-21 00:21:26 · 3901 阅读 · 0 评论 -
数据结构_串_用链表做存储结构实现KMP算法_C++实现
写这个纠结了很久,老是会有某个环节出问题。先是在处理串的结束标志的问题上,老是会跟其他的判断条件冲突造成提前退出,而且无论主串和模式串情况如何结果总是succeed,尝试了好几种方法,包括将其链接成单循环链表等,效果总是不太理想,后来就想到了临时new一个变量,用完之后再dele原创 2011-09-18 21:17:16 · 2355 阅读 · 0 评论 -
数据结构_串_串的模式匹配_KMP算法_C++实现
"head.h"#include#includeusing namespace std;class STRING{public: void GetString(); void GetSubString(); void KMP(); void P原创 2011-09-17 00:08:48 · 2343 阅读 · 4 评论 -
数据结构_串_串的一些操作_C++实现
"head.h"#include#includeusing namespace std;class STRING{public: STRING(); void GetString(); void GetSubString(); void Index原创 2011-09-17 00:07:26 · 2305 阅读 · 0 评论 -
数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
"mqueue.h"#includeusing namespace std;class NODE{public: NODE(); int num; NODE* next;};NODE::NODE(){ num=0; next=NULL;}原创 2011-09-14 15:27:09 · 1412 阅读 · 0 评论 -
数据结构_链表_多项式求导_C++实现
"head.h"#include#includeusing namespace std;class NODE{public: NODE(); int coef; int exp; NODE *next;};NODE::NODE(){ co原创 2011-09-14 13:12:29 · 3611 阅读 · 0 评论 -
数据结构_链表_稀疏多项式求值_C++实现
"head.h"#include#includeusing namespace std;class PolyTerm{public: PolyTerm(); int coef; int exp; PolyTerm *next;};PolyTe原创 2011-09-14 13:10:26 · 1628 阅读 · 1 评论 -
构造链表ABC,删除在A中的ABC的公共元素_C++实现
"head.h"#includeusing namespace std;class NODE{public: NODE(); int num; NODE *next;};NODE::NODE(){ num=0; next=NULL;}原创 2011-09-13 19:45:56 · 818 阅读 · 0 评论 -
链表的有序合并相关_C++实现
构造两个链表将链表2有序合并到链表1增加功能使其能删除链表中重复的元素"head.h"#includeusing namespace std;class NODE{public: NODE(); int num; NODE *n原创 2011-09-13 19:41:21 · 701 阅读 · 0 评论 -
循环链表按条件分割_C++实现
构造一个循环链表存放一个含有三种字符(数字,字母,其他)字符序列不开辟新空间将该链表分割成三个循环链表每个存放一种字符"head.h"#include#include#define DIGIT 1#define ALPHA 2#原创 2011-09-13 19:35:21 · 973 阅读 · 0 评论 -
链表的插入删除和查找_C++实现
郑州的雨似乎没停过连着下了有半个月了吧现在穿短袖都很冷不知道是不是真的要入秋了今天把严蔚敏老师的数据结构视频看完了下面开始进入实践阶段下午抽了一段时间把链表的插入删除和查找用C++实现了插入删除和查找等操作都已封装在DATA类里了原创 2011-09-11 17:02:44 · 2226 阅读 · 2 评论 -
数据结构_内部排序_插入排序小练习
采用了两种不同的排序方法,各有优劣。#include#includeusing namespace std;#define ListLen 10#define radombase 100void print(int a[]){ for(int i=0;i<ListLen;i++) cout<<a[i]<<" "; cout<<endl; }/*void In原创 2011-11-08 16:49:03 · 857 阅读 · 0 评论 -
数据结构_查找_静态查找数表_平衡二叉树
"BalancedBinaryTree.h"#define LH 1#define EH 0#define RH -1#define OK 0#define FAILED 1typedef int Status;typedef int ElemType;typedef struct BSTNode//平衡二叉树的存储结构{ ElemType da原创 2011-11-01 10:06:39 · 1497 阅读 · 0 评论 -
合并排序
//合并排序 #include#includeusing namespace std;int num[100];void print(int num[],int len){ for(int i=0;i<len;i++) { cout<<num[i]<<" "; } cout<<endl;}void merge(int num[],int beg,int mid原创 2012-05-17 18:21:15 · 577 阅读 · 0 评论