- 博客(30)
- 问答 (1)
- 收藏
- 关注
原创 折半查找(二分/对分查找)
折半查找(二分/对分查找)折半查找的性能分析——判定树与顺序查找相比:优点:效率比顺序查找高缺点:只适用于有序表,且仅限于顺序存储结构(对线性链表无效)#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 346
原创 顺序查找(线性查找)
顺序查找(线性查找)设置哨兵的顺序查找:#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 462
原创 有向无环图计算关键路径的实现
有向无环图计算关键路径的实现把工程计划表示为边表示的活动的网络,即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 339
原创 有向无环网拓扑排序
有向无环网拓扑排序针对有向无环图!**有向无环图:**无环的有向图,简称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 121
原创 最小生成树——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 416
原创 邻接多重表
邻接多重表能不能只出现一次呢?#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 1328
原创 二叉树的应用(复制二叉树、计算二叉树的深度、计算二叉树的总结点个数、计算叶子结点的个数)
二叉树的应用(复制二叉树、计算二叉树的深度、计算二叉树的总结点个数、计算叶子结点的个数)
2022-04-17 15:25:11 950
原创 线性表的应用——有序表的合并
有序表的合并初始条件: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 194
原创 线性表的应用——线性表的合并
线性表的合并初始条件:线性表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 3459 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 300
原创 带头结点的尾指针表示的循环链表的合并
带头结点的尾指针表示的循环链表的合并为什么要用带尾指针的而不是用带头指针的呢?如下图:因为带尾指针的话找头结点方便啊(时间复杂度O(1)),但是带头指针的找尾结点不方便啊(需要遍历,时间复杂度O(n))循环链表与单链表相比要注意的点注意:循环链表的空链表的表示为头结点的指针指向自己(即存头结点的自己地址)如何终止:原来是p/p->next是否为空,现在是判断它们是否等于头指针两个循环链表的合并注意:按照上述合并之后,尾指针现在变为Tb了。#include <iost
2022-04-15 10:05:53 1282 2
空空如也
GetMouseMsg()函数左键按下没有反应?
2020-10-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人