
数据结构
菜菜iwi
我是一个码农,一个不及格的码农
展开
-
顺序查找(线性查找)
顺序查找(线性查找) 设置哨兵的顺序查找: #include<iostream> #define MAXSIZE 100 using namespace std; typedef char KeyType; typedef struct { KeyType key; }ElemType; typedef struct { ElemType* R; int length; }SSTable; void InitST(SSTable& ST) { ST.R = new ElemTy原创 2022-04-25 08:18:46 · 509 阅读 · 0 评论 -
有向无环网拓扑排序
有向无环网拓扑排序 针对有向无环图! **有向无环图:**无环的有向图,简称DAG图(Directed Acycline Graph) #include <iostream> #include<cmath> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 100 //定义无穷大 #define MAXInt 32767 typedef int Status; type原创 2022-04-23 23:02:51 · 154 阅读 · 0 评论 -
Floyd算法
Floyd算法实现原创 2022-04-23 21:21:45 · 168 阅读 · 0 评论 -
Dijkstra算法
Dijkstra算法原创 2022-04-23 18:51:40 · 128 阅读 · 0 评论 -
构造最小生成树——克鲁斯卡尔算法(Kruskal)
克鲁斯卡尔算法原创 2022-04-22 16:43:46 · 335 阅读 · 0 评论 -
最小生成树——Prim算法(普利姆算法)
最小生成树——Prim算法(普利姆算法) 我这里为了方便就不构建其他边集合的结构了,而是直接用图存储生成的最小生成树,有需要可以自己定义相关结构! #include <iostream> #include<cmath> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 100 //定义无穷大 #define MAXInt 32767 typedef int Status; typ原创 2022-04-22 13:22:08 · 460 阅读 · 0 评论 -
广度优先搜索
无向图的广度优先搜索原创 2022-04-21 23:44:29 · 257 阅读 · 0 评论 -
无向图的深度优先搜索
无向图的深度优先搜索原创 2022-04-21 23:38:54 · 2347 阅读 · 1 评论 -
无向图邻接表实现
无向图的邻接表的实现原创 2022-04-21 23:32:16 · 18129 阅读 · 1 评论 -
邻接多重表
邻接多重表 能不能只出现一次呢? #include<iostream> #define OK 1 #define ERROR 0 #define FALSE 0 #define TRUE 1 #define MAXNum 100 using namespace std; /* 为啥要邻接多重表呢? 一开始的那个邻接表有啥问题呢,就是在存无向图的时候吧 它每条边都会存两次, 因为它的边结点的类型是data+firstedge(指向依附于该顶点的边) 然后我们把它修改一下: mark原创 2022-04-21 20:09:25 · 1361 阅读 · 0 评论 -
有向图的十字链表表示法
有向图的十字链表表示法原创 2022-04-21 12:40:55 · 2248 阅读 · 0 评论 -
邻接矩阵表示法创建无向网
邻接矩阵表示法创建有向无环图原创 2022-04-19 23:48:58 · 3892 阅读 · 1 评论 -
哈夫曼树的创建以及哈夫曼编码的实现
哈夫曼树的创建以及哈夫曼编码的实现原创 2022-04-18 22:31:39 · 321 阅读 · 0 评论 -
先序、后序、层次遍历树
树的孩子兄弟表示法(先序、后序、层次遍历树)原创 2022-04-18 10:59:43 · 706 阅读 · 0 评论 -
中序遍历创建带头结点的线索二叉树
中序遍历创建带头结点的线索二叉树原创 2022-04-17 15:28:41 · 1904 阅读 · 0 评论 -
二叉树的应用(复制二叉树、计算二叉树的深度、计算二叉树的总结点个数、计算叶子结点的个数)
二叉树的应用(复制二叉树、计算二叉树的深度、计算二叉树的总结点个数、计算叶子结点的个数)原创 2022-04-17 15:25:11 · 1042 阅读 · 0 评论 -
链式结构二叉树的层次遍历
层次遍历链式二叉树原创 2022-04-16 23:21:34 · 707 阅读 · 0 评论 -
非递归遍历链式二叉树
非递归遍历链式结构的二叉树(先序、中序、后序)原创 2022-04-16 23:15:18 · 587 阅读 · 0 评论 -
递归遍历链式存储结构二叉树
递归遍历链式结构二叉树原创 2022-04-16 23:11:26 · 415 阅读 · 0 评论 -
线性表的应用——有序表的合并
有序表的合并 初始条件:la和lb中的元素按值非递减排序 要求:合并到lc,lc依然是按值非递减 顺序表实现 #include <iostream> #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define MAXSIZE 100 using namespace std; typedef int Status;//返回值类型 typ原创 2022-04-15 10:38:39 · 225 阅读 · 0 评论 -
线性表的应用——线性表的合并
线性表的合并 初始条件:线性表la和lb 算法: 依次从lb中取出元素,查看是否存在la中,不存在则插入 顺序线性表的实现: //线性表的合并 void unionList(SqList* &la,SqList* &lb){ //从一个表中获取元素,再和另一个表中的数据进行比较 int lena,lenb; lena=GetLength(la); lenb=GetLength(lb); for(int i=1;i<=lena;i++){原创 2022-04-15 10:32:07 · 3700 阅读 · 1 评论 -
双向链表的实现
双向链表 双向循环链表:对称性 #include <iostream> #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define MAXSIZE 100 using namespace std; typedef int Status;//返回值类型 typedef char ElemType;//数据类型 using namespac原创 2022-04-15 10:19:33 · 321 阅读 · 0 评论 -
带头结点的尾指针表示的循环链表的合并
带头结点的尾指针表示的循环链表的合并 为什么要用带尾指针的而不是用带头指针的呢? 如下图: 因为带尾指针的话找头结点方便啊(时间复杂度O(1)),但是带头指针的找尾结点不方便啊(需要遍历,时间复杂度O(n)) 循环链表与单链表相比要注意的点 注意:循环链表的空链表的表示为头结点的指针指向自己(即存头结点的自己地址) 如何终止:原来是p/p->next是否为空,现在是判断它们是否等于头指针 两个循环链表的合并 注意:按照上述合并之后,尾指针现在变为Tb了。 #include <iost原创 2022-04-15 10:05:53 · 1353 阅读 · 2 评论 -
线性表实现多项式加法(C++)以及链表实现稀疏多项式的加法
线性表实现多项式加法(C++)以及链表实现稀疏多项式的加法原创 2022-03-24 20:40:24 · 1831 阅读 · 0 评论 -
单链表的初始化、查找、删除、插入
单链表的初始化、查找、删除、插入原创 2022-03-20 23:01:02 · 426 阅读 · 0 评论 -
线性表的顺序表示(C/C++语言实现)
线性表的顺序表示(C/C++语言实现)原创 2022-03-18 19:57:35 · 398 阅读 · 0 评论