数据结构
菜菜iwi
我是一个码农,一个不及格的码农
展开
-
折半查找(二分/对分查找)
折半查找(二分/对分查找)折半查找的性能分析——判定树与顺序查找相比:优点:效率比顺序查找高缺点:只适用于有序表,且仅限于顺序存储结构(对线性链表无效)#include<iostream>#define MAXSIZE 100using namespace std;typedef char KeyType;typedef struct { KeyType key;}ElemType;typedef struct { ElemType* R; int leng原创 2022-04-25 09:52:09 · 295 阅读 · 0 评论 -
顺序查找(线性查找)
顺序查找(线性查找)设置哨兵的顺序查找:#include<iostream>#define MAXSIZE 100using 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 · 420 阅读 · 0 评论 -
有向无环图计算关键路径的实现
有向无环图计算关键路径的实现把工程计划表示为边表示的活动的网络,即AOE网,用顶点表示事件,弧表示活动,弧的权表示活动持续的时间。顶点/事件:表示在它之前的活动已经完成,在它之后的活动可以开始。代码实现:#include <iostream>#include<cmath>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100//定义无穷大#define原创 2022-04-24 22:25:48 · 316 阅读 · 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 32767typedef int Status;type原创 2022-04-23 23:02:51 · 94 阅读 · 0 评论 -
Floyd算法
Floyd算法实现原创 2022-04-23 21:21:45 · 111 阅读 · 0 评论 -
Dijkstra算法
Dijkstra算法原创 2022-04-23 18:51:40 · 96 阅读 · 0 评论 -
构造最小生成树——克鲁斯卡尔算法(Kruskal)
克鲁斯卡尔算法原创 2022-04-22 16:43:46 · 287 阅读 · 0 评论 -
最小生成树——Prim算法(普利姆算法)
最小生成树——Prim算法(普利姆算法)我这里为了方便就不构建其他边集合的结构了,而是直接用图存储生成的最小生成树,有需要可以自己定义相关结构!#include <iostream>#include<cmath>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100//定义无穷大#define MAXInt 32767typedef int Status;typ原创 2022-04-22 13:22:08 · 404 阅读 · 0 评论 -
广度优先搜索
无向图的广度优先搜索原创 2022-04-21 23:44:29 · 198 阅读 · 0 评论 -
无向图的深度优先搜索
无向图的深度优先搜索原创 2022-04-21 23:38:54 · 2068 阅读 · 1 评论 -
无向图邻接表实现
无向图的邻接表的实现原创 2022-04-21 23:32:16 · 15920 阅读 · 1 评论 -
邻接多重表
邻接多重表能不能只出现一次呢?#include<iostream>#define OK 1#define ERROR 0#define FALSE 0#define TRUE 1#define MAXNum 100using namespace std;/* 为啥要邻接多重表呢? 一开始的那个邻接表有啥问题呢,就是在存无向图的时候吧 它每条边都会存两次, 因为它的边结点的类型是data+firstedge(指向依附于该顶点的边) 然后我们把它修改一下: mark原创 2022-04-21 20:09:25 · 1312 阅读 · 0 评论 -
有向图的十字链表表示法
有向图的十字链表表示法原创 2022-04-21 12:40:55 · 2067 阅读 · 0 评论 -
邻接矩阵表示法创建无向网
邻接矩阵表示法创建有向无环图原创 2022-04-19 23:48:58 · 3223 阅读 · 1 评论 -
哈夫曼树的创建以及哈夫曼编码的实现
哈夫曼树的创建以及哈夫曼编码的实现原创 2022-04-18 22:31:39 · 281 阅读 · 0 评论 -
先序、后序、层次遍历树
树的孩子兄弟表示法(先序、后序、层次遍历树)原创 2022-04-18 10:59:43 · 613 阅读 · 0 评论 -
中序遍历创建带头结点的线索二叉树
中序遍历创建带头结点的线索二叉树原创 2022-04-17 15:28:41 · 1571 阅读 · 0 评论 -
二叉树的应用(复制二叉树、计算二叉树的深度、计算二叉树的总结点个数、计算叶子结点的个数)
二叉树的应用(复制二叉树、计算二叉树的深度、计算二叉树的总结点个数、计算叶子结点的个数)原创 2022-04-17 15:25:11 · 883 阅读 · 0 评论 -
链式结构二叉树的层次遍历
层次遍历链式二叉树原创 2022-04-16 23:21:34 · 645 阅读 · 0 评论 -
非递归遍历链式二叉树
非递归遍历链式结构的二叉树(先序、中序、后序)原创 2022-04-16 23:15:18 · 526 阅读 · 0 评论 -
递归遍历链式存储结构二叉树
递归遍历链式结构二叉树原创 2022-04-16 23:11:26 · 341 阅读 · 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 100using namespace std;typedef int Status;//返回值类型typ原创 2022-04-15 10:38:39 · 167 阅读 · 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 · 3262 阅读 · 1 评论 -
双向链表的实现
双向链表双向循环链表:对称性#include <iostream>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define MAXSIZE 100using namespace std;typedef int Status;//返回值类型typedef char ElemType;//数据类型using namespac原创 2022-04-15 10:19:33 · 287 阅读 · 0 评论 -
带头结点的尾指针表示的循环链表的合并
带头结点的尾指针表示的循环链表的合并为什么要用带尾指针的而不是用带头指针的呢?如下图:因为带尾指针的话找头结点方便啊(时间复杂度O(1)),但是带头指针的找尾结点不方便啊(需要遍历,时间复杂度O(n))循环链表与单链表相比要注意的点注意:循环链表的空链表的表示为头结点的指针指向自己(即存头结点的自己地址)如何终止:原来是p/p->next是否为空,现在是判断它们是否等于头指针两个循环链表的合并注意:按照上述合并之后,尾指针现在变为Tb了。#include <iost原创 2022-04-15 10:05:53 · 1199 阅读 · 2 评论 -
线性表实现多项式加法(C++)以及链表实现稀疏多项式的加法
线性表实现多项式加法(C++)以及链表实现稀疏多项式的加法原创 2022-03-24 20:40:24 · 1755 阅读 · 0 评论 -
单链表的初始化、查找、删除、插入
单链表的初始化、查找、删除、插入原创 2022-03-20 23:01:02 · 371 阅读 · 0 评论 -
线性表的顺序表示(C/C++语言实现)
线性表的顺序表示(C/C++语言实现)原创 2022-03-18 19:57:35 · 338 阅读 · 0 评论