数据结构
文章平均质量分 57
hxng
这个作者很懒,什么都没留下…
展开
-
哈夫曼树及应用
结果:原创 2023-06-12 16:36:55 · 56 阅读 · 0 评论 -
图的邻接矩阵的广度优先遍历和深度优先遍历
再从这些访问过的顶点出发,访间它们所有未被访问过的邻接顶点,直至图中的所有顶点都被访问过为止。若此时图中尚有顶点未被访问,则另选图中的一个未被访问的顶点作为始点,重复上述过程,直至图中所有顶点都被访问到为止。深度优先搜索类似于树的先序遍历。其基本思想是:首先访问起始顶点v,然后由v出发,访问与v邻接且未被访问的任一顶点,再访问与m邻接且未被访问的任一顶点W2…当不能再继续向下访问时,依次退回到最近被访问的顶点,若它还有邻接顶点未被访问过,则从该点开始继续上述搜索过程,直至图中所有顶点均被访问过为止。原创 2023-06-12 16:16:56 · 495 阅读 · 0 评论 -
Prim 算法与 Dijkstra 算法
算法将按各顶点与v间最短路径长度递增的次序,逐个将集合V-S中的顶点加入集合S中去。在这个过程中,总保持从到集合S中各顶点的路径长度始终不大于到集合V-S中各顶点的路径长度。②选择一个与当前顶点集合距离最近的顶点,并将该顶点和相应的边加入进来,同时不形成回路。用于构建单元点的最短路径树——即树中某个点到任何其他点的距离都是最短的。第二组V-S:尚未求出的最短路径的顶点集合(初始时为V-{Vo})。第一组S:已求出的最短路径的终点集合(初始时只包含源点v)。对于网N=(V,E),将N中的顶点分成两组。原创 2023-06-12 16:05:57 · 74 阅读 · 0 评论 -
3.6: 链队列
对联是一种先进先出(First In First Out,FIFO)的线性表。只允许在表的一端插入(称为队尾,rear),另一端删除(称为队头,front)。脱机打印输出:按申请的先后顺序依次输出;每用户系统中,多用户排成队,分时地循环使用CPU和主存;按用户的优先级排成多个队,每个优先级一个队列;实时控制系统中,信号按接收的先后顺序依次处理;网络的电文传输,按到达的时间先后顺序依次进行。原创 2023-04-24 23:00:20 · 60 阅读 · 0 评论 -
6.1: 二叉树的构建与遍历
二叉树(Binary Tree)是n(n≥0)个节点所构成的集合,它或为空树(n=0),或为非空树。对于非空树T:(1)有且仅有一个称之为根的节点;(2)除根节点以外的其余节点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树, 且T1和T2本身又都是二叉树。原创 2023-05-03 21:05:30 · 128 阅读 · 0 评论 -
3.2 栈的应用 -- 括号匹配
首先遇到左边括号,先入栈;接下来是右边括号,与栈顶元素匹配,“[]”为一对合法的括号,匹配成功栈顶元素出栈;接下来又是右边括号,与栈顶元素匹配,“()”为一对合法的括号,匹配成功栈顶元素出栈;接下来又是右边括号,与栈顶元素匹配,“()”为一对合法的括号,匹配成功栈顶元素出栈;当字符串循环结束并且栈为空栈时,则证明此字符串的括号匹配合法。再比如说,我们输入了{}([])这串括号组,这是一个正确的括号组;而{(}]这串括号组,显然是一个错误的括号组。在编写代码过程中,如果出现括号不匹配的问题,编译器就会报错。原创 2023-04-24 19:35:30 · 91 阅读 · 0 评论 -
3.5Hanoi塔
事实上,上述方法设盘子数为n, n可为任意数,该法同样适用于移动n-1个盘。依据该原理,层层递推,即可将原问题转化为解决移动n -2、n -3…该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘。每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。(1)以C盘为中介,从A杆将1至n-1号盘移至B杆;从B杆将1至n-1号盘移至C杆。(2)将A杆中剩下的第n号盘移至C杆;得T(n)=2^n-1。原创 2023-04-19 22:02:37 · 165 阅读 · 0 评论 -
线性表总结
由存储数据和其直接后继存储位置两部分信息组成数据元素a的存储映像,称为节点(node)。节点包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称作指针或链。n个节点的存储映像]链接成一个链表,即为线性表:(a1, a2,… ,an) 的链式存储结构。又由于此链表的每个节点中包含一个指针域]故又称线性链表或单链表。原创 2023-04-19 22:01:05 · 189 阅读 · 0 评论 -
2.4多项式的加法
多项式的加法创建两个多项式链表后,便可以进行多项式的加法运算了。假设头指针为Pa和Pb的单链表分别为多项式A和B的存储结构,指针p1和p2分别指向A和B中当前进行比较的某个节点,则逐一比较两个节点中的指数项,对于指数相同的项,对应系数相加,若其和不为0,则插入“和多项式”链表中;对于指数不相同的项,则通过比较,将指数值较小的项捕入“和多项式”链表中。【算法步骤】①指针p1和p2初始化,分别指向Pa和Pb的首元节点。②p3指向和多项式的当前节点,初值为Pa的头节点。原创 2023-04-10 11:12:05 · 108 阅读 · 0 评论 -
2.3静态链表
用数组来表示链表,用数组元素的下标来模拟链表的指针.由于是利用数组来定义的链表,属于静态储存分配, 因而叫做静态链表.结点的定义:静态链表的节点也有由两个域组成:数据域和指针域融合顺序表和链表各自的优点,既能快速访问元素,又能快速增加或删除数据元素。使用静态链表存储数据,需要预先申请足够大的一整块内存空间。静态链表存储数据元素的个数从其创建的那一刻就已经确定,后期无法更改。原创 2023-04-09 16:45:12 · 50 阅读 · 1 评论 -
2.2单链表
1.从第一个节点(L->next)顺链扫描,用指针p指向当前扫描到的节点,p初值p = L->next。每个结点由数据域和指针域两部分组成,单链表是只含一个指针域的链表。链表仍存在 ,但链表中无元素,成为空链表(头指针和头结点仍存在)空表:链表中无元素,称为空链表(头指针和头结点仍然存在)4.当j == i时,p所指的节点就是要找的第i个节点。3.从最后一个节点开始,依次将各节点插入到链表的前端。(1)生成新节点作为头节点,用头指针L指向头节点;2.生成新节点,将读入数据存放到新节点的数据域中。原创 2023-04-02 21:53:21 · 124 阅读 · 0 评论 -
数据结构:顺序表
指的是用一组地址连续的存储单元依次存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像。通常,称这种存储结构的线性表为顺序表(Seguential List)。它与数组类似,可用一维数组表示。它们都用变量表示顺序表长度属性,但数组长度不可动态定义。1)逻辑上相邻的数据元素,其物理位置也是相邻的。2)顺序存储结构是占用一片连续的存储空间。* 地址连续,依次存放,随机存取,类型相同 *函数调用时传送给形参表的实参必须与形参三个一致(类型,个数,顺序)。原创 2023-03-27 21:39:45 · 71 阅读 · 0 评论 -
初学数据结构
计算机领域有一个可以和能量方程(E=²)相提并论的公式:程序=数据结构+算法(编程语言之父——图灵奖得主尼古拉斯·沃斯提出),足以见数据结构的重要性。在上了数据结构第一节课并且自己系统浏览了内容后,对于接下来的学习内容有了初步了解。老师在对数据结构的学习建议中说到,学习数据结构就是要把自己变笨。唯有踏实奋进,才能有不错的成果。原创 2023-03-22 23:27:23 · 68 阅读 · 1 评论