数据结构
文章平均质量分 57
作者初学数据结构时的学习笔记以及对某些概念的理解与心得,欢迎大家指正
憋废话_开码
这个作者很懒,什么都没留下…
展开
-
线索二叉树的个人见解
线索二叉树的个人见解原创 2022-04-08 21:10:02 · 115 阅读 · 0 评论 -
数据结构——查找易错总结
数据结构——查找易错总结原创 2022-04-08 21:07:55 · 1931 阅读 · 0 评论 -
数组、矩阵、广义表习题
数组、矩阵、广义表习题原创 2021-05-12 21:44:03 · 97 阅读 · 0 评论 -
时间复杂度的理解
时间复杂度的理解原创 2021-04-16 15:47:06 · 596 阅读 · 0 评论 -
各类排序方法
十大排序!!!!原创 2021-06-03 10:06:59 · 144 阅读 · 0 评论 -
数据结构——查找
数据结构——查找总结原创 2021-05-11 09:17:46 · 794 阅读 · 0 评论 -
中序线索二叉树的构造
如何构造中序线索二叉树?typedef struct TBTNode{ int ltag,rtag;//ltag=0时lchild指向做孩子,ltag=1时lchild作为线索指向本节点的前驱 struct TBTNode *lchild; struct TBTNode *rchild; char data;}void createInThread(TBTNode *root)//通过中序遍历建立中序线索二叉树的主程序{ TBTNode *pre=NUL原创 2021-03-03 12:43:12 · 1401 阅读 · 1 评论 -
树的深度优先遍历的非递归实现
三种遍历的非递归实现思路1⃣️:前序遍历的非递归实现首先根结点入栈,然后执行循环条件为(top!=-1)的循环,依次出栈栈中元素,每出栈一个元素需要判断其右孩子和左孩子是否存在(先右后左,因为栈是“先进后出”,而前序遍历是根左右的顺序,先访问的是左子树,所以就要让左子树后入栈以便先访问),如果存在则将其入栈,否则一直出栈直到栈空为止,代码如下:void preorderNonrecursion(BTNode *bt){ if(bt) { BTNode* stack原创 2021-03-02 23:15:24 · 1192 阅读 · 1 评论 -
中序线索二叉树中必须牢记的概念
中序线索二叉树中必须牢记的概念原创 2021-03-10 19:41:01 · 215 阅读 · 0 评论 -
数据结构——树
文章目录树的基本概念基本术语性质二叉树的概念二叉树性质完全二叉树性质二叉树的存储结构顺序存储链式存储二叉树的遍历与线索二叉树前中后序遍历的递归形式前中后序以及层次遍历的非递归形式线索二叉树概念中序线索二叉树构造及遍历前序线索二叉树构造及遍历线索二叉树总结后序线索二叉树构造及遍历树的存储结构双亲表示法、 孩子表示法、孩子兄弟表示法树、森林与二叉树的转换树、森林的遍历树的应用(并查集)哈夫曼树与哈夫曼编码树的基本概念树是n(n≥0)个结点的有限集合,n = 0时,称为空树,这是一种特殊情况。在任意一棵非空树原创 2021-05-20 16:53:57 · 142 阅读 · 0 评论 -
迪杰斯特拉算法
void Dijkstra(grapg g,int start,int dist[],int path[]){ int set[maxsize];//用以标记某个顶点是否已经被处理 int i,j,min,u;//u用来记录每次在dist数组里找到的下标;min用来记录最小路径的权值 for(i=0;i<g.n;i++)//5-18行为初始化部分 { dist[i]=g.v[start][i]; if(dist[i]<INF)原创 2021-02-17 18:52:16 · 398 阅读 · 0 评论 -
拓扑排序
AOV网:是一种以顶点表示活动、以边表示活动的先后次序且没有回路的一种有向图,进行拓扑排序则是用以输出某一活动进行过程中各个步骤的执行先后顺序图的存储结构:邻接表(需对头结点结构略加改变,使其记录每个顶点的入度值)作用于有向无环图typedef struct{ char data; int count;//记录了以当前顶点为头节点的入度值 Arcnode *firstarc;}VNode;void Topsort(Agraph *g){ Acnode*p;//原创 2021-02-21 16:07:30 · 98 阅读 · 0 评论 -
清楚讲解关键路径问题
清楚讲解关键路径问题原创 2021-02-23 10:36:54 · 271 阅读 · 1 评论 -
数据结构——图
数据结构——图原创 2021-07-13 23:19:10 · 256 阅读 · 0 评论 -
Kruskal算法
typedef struct//1-5行是针对kruskal算法新定义的一种结构,a和b代表当前边的起始顶点,w代表这条边的权值{ int a,b; int w;}Road;Road road[maxsize];//通过声明这样一个结构数组则很好的存储了这个图中的n条边int v[maxsize];//在kruskal里面叫并查集,实际就是树的双亲存储结构,某个数组元素存储了它双亲的下标int getroot(int e)//此函数获取某一点的双亲{ while(e!原创 2021-02-16 17:15:26 · 182 阅读 · 0 评论 -
Floyd算法
void print(int A[][maxsize],int path[][maxsize],int u,int v)//u,v分别代表要求的两个顶点{ if(A[u][v]==INF)//表示两顶点间无路径 { printf("无路径\n"); exit(0); } else { if(path[u][v]==-1)//-1表示两顶点可以直接到达,此时直接输出即可 { pri原创 2021-02-18 13:44:33 · 144 阅读 · 2 评论 -
为什么说图的深度遍历类似于树的先序遍历?
DFS递归实现与树的先序遍历递归实现的相似处在考研复习时复习到图的深度遍历时,参考书中有一句话———图的DFS遍历类似于树的先序遍历,书中给的DFS遍历是以递归方式实现的,于是作者贴出了树的先序遍历的递归代码让读者互相比较,确实可以看出一些相似之处,那就是二者算法思想其实都是,先访问根结点(图中是DFS遍历的起始点),然后递归处理它们的“子部分”,图中的“子部分”指的是这个顶点的其余邻接点,树中的这个“子部分”则是结点的左右子树。DFS非递归遍历与树的先序遍历非递归实现的相似处通过对两种算法的递归实原创 2021-03-15 17:03:32 · 2705 阅读 · 1 评论 -
判断有向图是否有经过v0的环(综合应用题(2))
算法思想设想: 要找一个图中是否有经过某一点的环,我们可以从这一点进行深度遍历,某一点的深度遍历的执行过程为:每次选取此顶点的一个邻接点向下遍历,直到某一点的邻接点全部处理完后返回到上一个顶点,处理上一个顶点的其余邻接点,往复下去直到所有点的邻接点全部处理完。关键步骤:如果没有环,那么在我们处理某一个顶点的所有邻接点结束之前一定不会有这样一个邻接点—此邻接点先前已被遍历,反之,若某一邻接点第二次遍历到了,则证明有环。bool DFScircle(AGraph *g,int v0,bool vi原创 2021-03-06 20:15:35 · 306 阅读 · 0 评论 -
prim算法
void Prim(Graph g,int v0,int &sum){ int lowcost[maxsize],vset[maxsize];//lowcost数组表示当前生成树到某一节点的最短长度;vset表示此顶点是否已经加入到生成树中 int i,k,j,p,min; //6-13行为初始化,主要做的有将起始顶点添加到生成树中去,并补全当前生成树下的lowcost值,由于起始顶点已经加入到了生成树中去,那么这个顶点的vset值则为1,sum用来记录当前生成树的权值,j原创 2021-02-15 19:06:39 · 114 阅读 · 0 评论 -
关键路径问题
AOV网和AOE网有什么区别什么是关键路径关键路径中的几个重要概念1.AOV网与AOE网的区别AOV网AOE网顶点 :表示活动(例如制造车轮)顶点:表示事件(完成车轮子的制造)边:表示活动的先后次序边:表示活动2.什么是关键路径?关键路径有一最长一最短,它是图中从源点到汇点具有最大路径长度的路径,它是完成工程所需的最短时间源点:一张AOE网中,只存在一个入度为0的顶点,叫做源点,它是整个工程开始的起点。汇点:只存在一个出度为0的顶点,叫做汇点,表示整个.原创 2021-03-28 20:38:26 · 2792 阅读 · 1 评论 -
串——kmp,串的基本操作等等
串相关问题原创 2021-05-04 10:13:31 · 185 阅读 · 0 评论 -
数据结构——串的概念理解
1.看到一道题先弄清楚数组下标从1开始还是从0开始,从1开始的话它是将next[1]标记为0,并且next值为最大公共前后缀的长度+1,从0开始的话它是将next[0]标记为-1,并且next值为最大公共前后缀的长度(不加1)2.next[2]=5表达的意思是如果主串当前位置和模式串的2号位置不匹配,则将子串指针移到5位置,并不是将主串指针移到5位置,时刻记住主串指针不回溯3.串是一种特殊的线性表,其特殊性体现在数据元素是一个字符,千万不要以为数据元素是多个字符4.设有两个串p和q,求q在p中首原创 2021-05-08 14:59:54 · 420 阅读 · 0 评论 -
数据结构——栈和队列易错题
1.当栈中元素为n个时,做进栈运算发生上溢,证明栈的最大容量为n2.栈和队列具有相同的逻辑结构3.若一个栈的输入序列为p1,p2,p3,....,pn,输出序列为1,2,3,...,n,若p3=1,则p1的值为(C)A.可能是2 B.一定是2 C.不可能是2 D.不可能是34.若已知一个栈的入栈序列是1,2,3,4,其出栈序列为P1,P2,P3,P4,则P2,P4不可能是(C)A.2,4 ...原创 2021-05-01 10:09:22 · 3579 阅读 · 1 评论 -
数据结构——栈和队列
数据结构——栈和队列原创 2021-04-25 10:53:25 · 207 阅读 · 0 评论 -
数据结构——线性表
数据结构——线性表原创 2021-04-14 21:46:19 · 121 阅读 · 0 评论 -
线性表练习题
线性表练习题原创 2021-04-24 20:38:59 · 302 阅读 · 0 评论 -
线性表易错点
线性表易错点原创 2021-04-24 21:32:27 · 927 阅读 · 0 评论