![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言实现的数据结构
文章平均质量分 86
数据结构是抽象的,与语言无关哦,当然这里的文章都是用C语言实现的,参考了Mark Allen Weiss的数据结构书
迟钝的愛
希望每一个温柔的人能被同样温柔对待(●'◡'●)
展开
-
数据结构与算法和复杂度
根据算法写成的程序在执行时。这个长度往往与输入输出数据的规模有关。空间复杂度过高的算法可能导致使用的内存超限,从而引起程序崩溃。S(n)=c*n。原创 2024-03-20 20:31:11 · 757 阅读 · 0 评论 -
C语言实现的线性表
不要求逻辑上相邻的两个元素物理上也相邻,通过“链”建立起数据元素之间的逻辑关系。访问下标为i的元素:L.Data[i]或PtrL->Data[i]广义表中,这些元素不仅可以是单元素也可以是另一个广义表。利用数组的连续存储空间顺序存放线性表中的元素。对于线性表而言,n个元素都是基本的单元素。返回线性表L中第一个与x相等的元素位置。再找到链表的第i-1个结点,用p指向。找到链表的第i-1个结点,用p指向。:线性表是n个数据元素的有限序列。返回线性表L中第k个位置的元素。删除线性表L中第K个位置的元素。原创 2024-03-30 11:07:49 · 313 阅读 · 0 评论 -
C语言实现的堆栈
长度为MaxSize的堆栈S∈Stack,堆栈元素item∈ElementType。用一个数组实现两个堆栈,要求最大的利用数组空间,使数组只要有空间入栈操作就可以成功。栈的链式存储结构实际上就是一个单链表,叫做链栈,插入和删除操作只能在链栈的栈顶进行。中缀转换为后缀示例:(2 * (9 + 6 / 3 - 5) + 4)栈的顺序存储结构通常由一个一维数组和一个记录栈顶元素位置的变量组成。:运算符在操作数中间,如a+b。(1)堆栈初始化(建立空堆栈)删除并返回堆栈S的栈顶元素。(2)判断堆栈s是否为空。原创 2024-04-06 00:17:47 · 545 阅读 · 0 评论 -
C语言实现的队列
长度为MaxSize的队列Q∈Queue,其队列元素类型为item∈ElementType。队列的链式存储结构也可以用一个单链表实现,插入和删除操作分别在链表的两头进行。算法思路:两个指针P1和P2分别指向两个多项式的第一个结点,不断循环。,将p1当前项(c1,e1)乘p2多项式,逐项插入到结果多项式中。,将p1当前项(c1,e1)乘p2多项式,再加到结果多项式里。将P1的当前项存入结果的多项式,并使P1指向下一项。将P2的当前项存入结果的多项式,并使P2指向下一项。和一个记录队列头元素位置的变量。原创 2024-04-06 11:26:33 · 365 阅读 · 0 评论 -
C语言实现的树
从根结点到叶结点所经过的结点构成一条路径,路径上的结点数目称为路径长度。(Level):从根开始定义起,根为第1层,根的子节点为第2层,以此类推。(Parent):若一个结点含有子结点,则这个结点称为其子结点的父结点。(Tree)是n(n>=0)个结点的有限集合,当n=0时称为空树。(Child):一个结点含有的子树的根结点称为该结点的子节点。(Descendant):从当前结点到根的路径上所有结点。(Ancestor):从根到当前结点的路径上所有结点。(Depth):树中节点的最大层次就是树的深度。原创 2024-04-06 12:22:57 · 856 阅读 · 0 评论