随笔分类 -  数据结构-C语言篇

主要为使用C语言构建各种数据结构的随笔
摘要:接昨天,在这里给出图的其中一种应用:最小生成树算法(Prime算法和Kruskal算法)。两种算法的区别就是:Prime算法以顶点为主线,适合用于顶点少,边密集的图结构;Kruskal算法以边为主线,适合于顶点比较多,但是边比较稀疏的图结构。代码如下,亲测,可执行,在最后也给出输入数据的形式。 本来 阅读全文
posted @ 2019-02-12 18:16 哈哈瑞 阅读(2190) 评论(0) 推荐(0)
摘要:图(graph)是一种比树结构还要复杂的数据结构,它的术语,存储方式,遍历方式,用途都比较广,所以如果想要一次性完成所有的代码,那代码会非常长。所以,我将分两次来完成图的代码。这一次,我会完成图的五种存储结构的创建(邻接矩阵存储,邻接表存储,十字链表存储,邻接多重表存储,边集数组存储),两种遍历方式 阅读全文
posted @ 2019-02-11 15:56 哈哈瑞 阅读(2926) 评论(0) 推荐(0)
摘要:树是一种比较复杂的数据结构,它的操作也比较多。常用的有二叉树的创建,遍历,线索化,线索化二叉树的遍历,这些操作又可以分为前序,中序和后序。其中,二叉树的操作有递归与迭代两种方式,鉴于我个人的习惯,在这里我是使用递归来操作的,另外,层序遍历需要借助队列来实现。代码亲测,可执行。 阅读全文
posted @ 2019-02-10 16:16 哈哈瑞 阅读(3469) 评论(0) 推荐(0)
摘要:串这种数据结构,使用是比较多的,但是它的一些方法在更高级的语言中,比如Java,Python中封装的比较完整了。在这里,我只写了串中使用最多的匹配算法,即串的定位操作。串的匹配算法常用的两种就是朴素匹配算法和KMP匹配算法。代码亲测,可直接执行。 阅读全文
posted @ 2019-02-09 17:53 哈哈瑞 阅读(1477) 评论(0) 推荐(0)
摘要:关于队列,因为我自己在平时使用不多,所以在这里直接将队列的两种存储方式放在一起,作为一篇随笔,这两份代码均可直接运行,亲测。注释写的应该也算比较详细了,就不过多的解释了 顺序队列 链式队列 阅读全文
posted @ 2019-02-08 20:25 哈哈瑞 阅读(1518) 评论(0) 推荐(0)
摘要:相对于顺序栈的空间有限,链式栈的操作则更加灵活 阅读全文
posted @ 2018-08-23 22:39 哈哈瑞 阅读(1520) 评论(0) 推荐(0)
摘要:栈是一种只能允许在栈顶插入数据与删除数据的数据结构,其实这就是一种特殊的线性表,特殊在 只能在表尾进行增减元素,上代码 顺序栈中有一类比较特殊的栈,就是两个数据类型一样的栈可以共享同一个数组空间,从而可以节约内存空间。 使用这种结构时,大多是这两个栈的空间需求有相反关系,使得在一个栈的元素个数增多时 阅读全文
posted @ 2018-08-21 21:29 哈哈瑞 阅读(1154) 评论(0) 推荐(0)
摘要:1.静态链表是在没有指针的编程语言里对链表的一种实现2.主要是用数组模拟指针3.在这里,使用结构体使数组的每一个空间可以存储一个数据元素(date)和一个游标(cur),游标的作用相当于链表的指针域,用于记录下一元素的下标是多少4.在没有结构体(typedef)的语言中,也可以使用两个并行数组实现此 阅读全文
posted @ 2018-08-20 21:53 哈哈瑞 阅读(806) 评论(4) 推荐(1)
摘要:直接贴出完整代码,每个函数的功能及部分代码的解释都在注释中,代码亲测可行 阅读全文
posted @ 2018-08-19 23:04 哈哈瑞 阅读(2385) 评论(0) 推荐(1)
摘要:链式存储线性表的结构体: 创建链表: 链式存储的插入函数: 链式存储的删除函数: 链式存储的索引查找函数: 链式存储的修改函数: 链式存储的遍历打印函数: 整表删除函数: 主函数: 经检测,所有代码均可执行! 阅读全文
posted @ 2018-08-18 22:08 哈哈瑞 阅读(471) 评论(0) 推荐(0)
摘要:顺序存储线性表的结构体: 顺序存储的插入函数: 顺序存储的删除函数: 顺序存储的索引查找函数: 顺序存储的修改函数: 顺序存储的遍历打印函数: 主函数: 经检测,所有代码均可执行! 阅读全文
posted @ 2018-08-18 21:40 哈哈瑞 阅读(3433) 评论(0) 推荐(0)