数据结构C
文章平均质量分 65
记录数据结构学习内容
红烧鲈鱼
这个作者很懒,什么都没留下…
展开
-
拓扑排序的原理及实现
用顶点表示活动,弧表示活动间的优先关系的有向图称为以顶点表示活动的网,简称AOV-网。在网中,若从顶点vi到顶点vj有一条有向路径,则vi是vj的前驱,vj是vi的后继。所谓的拓扑排序就是将AOV-网中所有的顶点排成一个线性序列,该序列满足:若在AOV-网中从顶点vi到顶点vj有一条路径,则该线性序列中的顶点vi必定在顶点vj之前。原创 2023-05-29 16:11:05 · 293 阅读 · 0 评论 -
最小生成树Prim和单源最短路径Dijkstra
最小生成树能保证在整个拓扑图中的所有路径之和最小,但不能保证任意两点之间是最短路径。单源最短路径是从一点出发,到达目的地的路径最小。即最小生成树追求在拓扑图中追求直接相连的两点间的路径最短,不追求不直接相连的两点间路径最短;而单源最短路径追求起点到目标点间的路径最短。原创 2023-05-25 20:35:06 · 931 阅读 · 0 评论 -
单链表学习
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。通过节点中包含下一节点地址的指针这一性质,我们可以随意增加新的数据进链表中,受空间问题的限制比顺序表小很多,下面的代码包含单链表的初始化,增加数据,删除数据,插入数据,打印数据,判空和释放链表七个功能的实现。原创 2023-03-29 15:09:37 · 70 阅读 · 1 评论 -
静态链表学习笔记
静态链表有助于理解系统空间的分配机制,他既有链表的运作逻辑,也长有与顺序表相似的模样,静态链表代码如下: 下面是运行结果: 为什么说静态链表有着与顺序表相似的模样,主要还是因为这两个表的结构体部分和初始化部分。顺序表的结构体与初始化部分如下: 再来看静态链表的结构体与初始化: 不难发现静态链表结构体StaticLinkedList中的NodePtr nodes声明经过动态内存函数申请后变成了可以容纳DEFUALT_SIZE(5)个结构体StaticLinkedList的数原创 2023-04-05 17:28:45 · 127 阅读 · 2 评论 -
链队列学习
int data;这里定义了一个可以存储两个单链表节点的结构体指针LinkQueuePtr,其中front表示单链表的头指针(队头),rear表示单链表的尾指针(队尾)。在链队列的初始化中,定义了空队resultPtr和空表headerPtr,因为当前为空表,所以队头front和队尾rear都指向空表头headerPtr,返回空队resultPtr。原创 2023-04-24 21:46:47 · 55 阅读 · 0 评论 -
顺序表作业
【代码】顺序表作业。原创 2023-03-25 16:24:17 · 65 阅读 · 0 评论 -
二叉树的创建和遍历学习
二叉树是每个节点最多只有两个分支的树结构。通常分支被称作“左子树”或“右子树”。二叉树的左右次序不能随意颠倒。原创 2023-05-01 16:02:38 · 630 阅读 · 0 评论 -
哈夫曼树的创建和应用
要创建和使用哈夫曼树,就要有相应的结构定义,首先要定义一个树结构,还要定义一个栈来存储每个字符对应的哈夫曼编码。//最大读入的文本文件字符长度char c;int weight;//记录节点表示的二进制,左0右1int binary;//是否创建节点,0未创建,1创建;int flag;int top;}STACK;原创 2023-05-13 17:57:21 · 938 阅读 · 0 评论 -
汉诺塔问题学习
在这个递归解法中,hanoi 函数接受四个参数:盘子的数量 paraN,起始柱子 A,目标柱子 B,和辅助柱子 C。否则,将除最大的盘子外的所有盘子从起始柱子移动到辅助柱子上,然后将最大的盘子从起始柱子移动到目标柱子上,最后将辅助柱子上的所有盘子移动到目标柱子上,完成整个移动过程。在 main 函数中,我们将盘子数量设为3,起始柱子设为A,目标柱子设为B,辅助柱子设为C,然后调用 hanoi 函数来解决汉诺塔问题。汉诺塔问题是一个运用递归方法的典型例子。原创 2023-04-19 19:16:57 · 115 阅读 · 0 评论 -
多项式加法学习
多项式加法是链式有序表合并中的一个例子,便于我们理解链表是如何合并的。运行结果。原创 2023-04-08 22:07:19 · 84 阅读 · 0 评论 -
线性表学习总结
线性表是一种常用的数据结构,一个线性表是n个具有相同特性的数据元素的有限序列,其中的数据元素呈现一对一的关系。线性表分为顺序表和链表。原创 2023-04-19 23:15:19 · 95 阅读 · 0 评论 -
括号匹配学习
我们知道运算在引入括号时,越先引入的左括号,越后才能引入右括号,比如{ [ ( ) ] },左括号 '{' 在第一位,'}' 则到了第六位,但是 '(' 在第三位,而 ')' 在第四位,括号运用法则符合栈的先进后出,后进先出,所以我们可以用栈来检查括号是否匹配。入栈时只入括号类型的左括号,这样字符串移动识别到相同类型的右括号时,栈的长度top减一,删除表示栈的数组的末下标元素表示弹栈,当右括号与栈数组的末下标元素不匹配时返回false,表示括号不匹配。否则top-1,返回原本top下标的元素。原创 2023-04-24 12:44:45 · 60 阅读 · 0 评论 -
数据结构开课心得
数据结构是我们学习编程语言时要着重掌握的部分。绪论是整本书的开篇,看似没有内容,仔细阅读还是能解读出我们往后学习的内容的大致信息。原创 2023-03-22 15:47:11 · 189 阅读 · 2 评论