- 博客(11)
- 收藏
- 关注
原创 Dijkstra算法
集合U中每加入一个新的顶点u都要修改源点v0 带集合T中剩余顶点的当前最短路径值,集合T中各顶点的新的当前最短路径长度值,为原来的当前最短路径长度值与从源点过顶点u到达该顶点的带权路径长度中的较小者。设置两点顶点的集合U和T,集合U中存放已找到最短路径的顶点,集合T中存放当前还未找到的最短路径的顶点。算法简介:是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。然后从集合T TT中选择到源点v0路径长度最短的顶点u加入到集合U中。初始状态时,集合U中只包含源点,设为v0。
2023-05-23 13:11:11
62
原创 二叉树的构建与遍历
除根节点外,其余结点被分成是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。树的概念:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。1.每个结点最多有两棵子树,即二叉树不存在度大于2的结点。2.二叉树的子树有左右之分,其子树的次序不能颠倒。根结点:根节点没有前驱结点。
2023-05-03 16:29:22
67
原创 链队列分析
为单链表方式存储,输入队时从堆中动态申请及释放内存,可避免预置空间造成资源浪费及空间不够造成的队满溢出,但是需要多余的指针域空间。1.初始化中q->rear与q->front相当于两个链表结点,front相当于头指针,rear相当于尾指针。2.入队时,先创建一个新的结点队列,将next置为空。3.出队时,从队头出,在出队元素为队尾元素时,出队后队空。链队列操作:包括初始化、入队、出队。队列特点:先进先出,后进后出。
2023-04-24 21:23:54
98
原创 栈的应用——括号配对
用一个栈储存左括号,每出现一个右括号就出栈一个左括号。若左右括号不匹配、匹配右括号时栈内已空或处理完所有右括号时栈内非空,则说明括号不匹配。栈是一种重要的线性结构,限定仅在表尾进行插入或删除操作的线性表。表尾端称为栈顶(top),表头端称为栈底。特点:栈的元素遵循先进后出(后进先出),即最先进入栈的元素最后出栈。
2023-04-24 20:19:41
174
原创 汉诺塔问题分析
移动两个盘子时将第一个盘子移动至B杆,再将第二个盘子移动至C杆,最后将第一个盘子移动至C杆。移动三个盘子时可看作将两个盘子移动至B杆,再将第三个盘子移动至C杆,最后将两个盘子移动至C杆。因此可将问题转变为将n-1个盘子移动到B杆上,再把最后一个盘子移动到C杆上,最后再把剩下的n-1个盘子移动到C杆上。在汉诺塔问题中,表示需移动的圆盘数量n和三个柱子a,b,c为形参,调用时需提供具体名称。由此可将移动方式看做将第一、二个盘子视为整体,把两个盘子移动至B杆,再将第三个盘子移动至C杆,最后将两个盘子移动至C杆。
2023-04-24 18:57:32
600
原创 线性表总结与汉诺塔问题
静态链表特点:静态链表所分配的存储数据的空间是相邻的,这个空间类似于数组空间,数据全部储存在数组中,但储存位置是随机的。优点:在插入和删除操作时,只需要修改游标,不需要移动元素,从而改进了在顺序储存结构中插入和删除操作需要移动大量元素的缺点。头结点:1.是为了操作的统一和方便而设立的,放在第一元素的结点之前,其数据域一般无意义(也可存放链表的长度);头指针:1.指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针;静态链表存储数据元素的个数从其创建时就已经确定,后期无法更改。
2023-04-19 22:04:02
64
原创 链表的运用:多项式加法
申请一个新节点,将要求的系数和指数赋值给这个新节点,并将新节点的指针域置空,然后遍历整个链表,将新节点链接到最后一个节点的next指针上。从两个待相加的多项式表头开始,比较两个节点的指数大小,将结果存储到第一个多项式的链表中。传入一个指向多项式链表的指针,遍历该链表,依次打印链表内容,此时采用科学计数法的形式。用链表储存多项式则链表的一个节点就代表多项式的某一项。,将指数小的节点链接到结果链表中,改变指针指向以更新链表遍历状态。,则将两个节点系数相加,并将结果存放到第一个节点的系数中;
2023-04-10 21:03:18
606
原创 静态链表笔记
特点:静态链表所分配的存储数据的空间是相邻的,这个空间类似于数组空间,数据全部储存在数组中,但储存位置是随机的。静态链表还分配一个数组大小和存储数据的数组大小相同的空间,用于0和1标记存储数据的空间是否被使用。同时静态链表的空间在使用过程中大小不变。静态链表存储结构:以“数组+游标”的方式存储具有线性关系数据。静态链表:用数组代替指针来描述单链表,也叫游标实现法。
2023-04-10 20:22:47
64
1
原创 单链表笔记
从表结点遍历,查找第i-1个结点即删除位置的前驱结点p,被删除结点为q,使p的指针域指向q的下一个结点,然后释放结点q的存储空间。从表结点遍历,查找第i-1个结点即插入位置的前驱结点p,令新结点的指针域指向p的后继结点,然后使p的指针域指向新结点。声明一个指针,从头结点指向的第一个结点开始若指针不为空则输出当前结点并指向下个结点。:一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。建立一个新链表,找到原链表头结点并遍历至尾结点,使尾结点指向新链表头结点。分为两部分:数据域与指针域。
2023-03-29 21:53:52
96
原创 顺序表笔记
线性表的顺序表示:用一组地址连续的存储单元依次存储线性表的数据元素,通常称这种存储结构的线性表为顺序表。顺序表特点:逻辑上相邻的数据元素,其物理位置也是相邻的。
2023-03-27 10:49:21
48
原创 数据结构绪论笔记
(2)链式存储结构:把数据元素存放在任意存储单元内,无需占用一整块存储空间,但给每个节点附加指针字段用于存放后继元素的存储地址,其存储关系不反应逻辑关系。逻辑结构是指数据对象中数据元素之间的相互关系,与数据的存储无关,是独立于计算机的。(1)顺序存储结构:把数据元素存放在地址连续的存储单元中,由相对位置来表示数据元素之间的逻辑关系。存储结构是数据的逻辑结构在计算机中的存储形式,包括顺序存储结构与链式存储结构。(4)数据对象:性质相同的数据元素的集合,是数据的一个子集。
2023-03-22 13:30:51
108
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人