数据结构与算法
文章平均质量分 58
洁洁!
CSDN内容合伙人,CSDN新星计划导师,CSDN实力新星,阿里云专家博主,支付宝优秀开发者,C/C++领域新星创作者,商业合作,互利合作,合作共赢,有需求就会有回应,欢迎联系我!
展开
-
顺序表详解
顺序表中的每个数据元素(存储位置连续)按其顺序有唯一的索引值(下标值)来访问数据元素的内容。结构体以last定义一个记录元素个数(顺序表长度)的变量,对于顺序表的增删统计长度的大小。此种算法看似简单,但是有很大的局限性,当输入位置重复时,会得到错误的结果。当输入位置重复时,该位置即往后的数就会自动向后移动。删除函数,也要把后面的数一个一个的往前移。无需遍历查找,也体现了顺序表的优越处,时间复杂度为O(1)不需要再为结点间的逻辑关系而增加额外的储存空间。顾名思义,按照顺序方式存储的线性表称为顺序表。原创 2023-03-21 22:32:26 · 600 阅读 · 21 评论 -
c语言二叉树代码实现
先简单介绍一下二叉树,这个词熟悉又陌生,通过字面了解就是每一个结点如果有叉,那最多只能有2个分支,这两个分支就叫做左子树和右子树。左子树和右子树是有顺序的,即使只有一棵子树也要区分是左子树还是右子树。原创 2023-01-12 18:47:07 · 921 阅读 · 3 评论 -
数据结构c语言代码实现单链表
今天让我们一起来看看如何用c语言实现单链表尼?废话不多说,直接上代码。这是分装的代码,直接合并即是全部代码。主要内容如下:声明头文件,结构体。 随便一位置删除元素。初始化链表。头插法添加。尾插法添加 ,打印链表原创 2023-01-03 20:22:00 · 355 阅读 · 3 评论 -
c语言 数据结构二叉树 层次遍历 简单上手代码
c语言 数据结构 二叉树 层次遍历 代码简单上手实现。简单思路分为如下几步:原创 2023-01-15 19:54:30 · 534 阅读 · 4 评论 -
c语言数据结构栈和队列代码实现
c语言数据结构 栈和队列 的代码实现,让你不再恐惧,总结成两句话:栈是在链表表尾进行插入和删除的线性表。队列时只能在一端插入,另一端删除的线性表。原创 2023-01-05 21:13:15 · 249 阅读 · 2 评论 -
c语言 挑战本站最详细注释双链表实现
挑战本站最详细注释 c语言 双链表 的实现具有详细注释的双链表代码展示最后有全部代码实现原创 2023-01-05 07:15:00 · 362 阅读 · 52 评论 -
图的定义与术语的详细总结
图(Graph)是由**顶点的有穷**非空集合和**顶点之间边**的集合组成。通常表示为**G(V,E)** ,**G**表示一个**图**,**V**是图G中**顶点的集合**,**E**是图G中**边的集合**。线性表中把数据元素叫元素,树中将数据元素叫结点,在图中**数据元素叫做顶点**。在线性表中可以没有数据元素,称为**空表**。树中可以没有结点,称之为**空树**。但是在图中**不能没有顶点**。这在定义中也有体现:V是顶点的**有穷非空**集合。原创 2023-04-06 15:46:45 · 1551 阅读 · 79 评论 -
哈夫曼树的详细讲解(手把手教学)
哈夫曼树又称为最优树,是一类带权路径长度最短的树,应用光泛。在学习哈夫曼树的时候,我们来先引入路径和路径长度的概念。 学会哈夫曼树的权值计算(WPL)学会哈夫曼树的构造理解哈夫曼树编码算法思想原创 2023-04-04 22:56:28 · 3143 阅读 · 19 评论 -
环形链表的判定与其拓展延伸
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中存在环 ,则返回 true 。 否则,返回 false 。slow走一步 ,fast 走两步 fast **一定**会追上slow 当slow 走一步,fast 走三步 ,不确定,有可能会追上正好相等,也有可能是一个死循环。所以。和两个指针之间的距离与每回两个指针之间缩减的距离密切相关。原创 2023-03-12 14:24:22 · 445 阅读 · 38 评论 -
合并两个链表(自定义位置合并与有序合并)详解
自定义位置合并与有序合并1.给两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。请你将 list1 中 下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点2.将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。2.的位置。原创 2023-03-11 22:59:37 · 705 阅读 · 18 评论 -
算法分析详解
自古老的公元前1世纪开始,《周髀算经》就作为中国最古老的天文学和数学著作。《周髀算经》采用最简便可行的方法确定天文历法,揭示日月星辰的运行规律,包括四季更替,气候变化,南北有极,昼夜相推的道理。为后来者的生活作息提供了有力保障。经过几个世纪的发展,到公元9世纪,波斯数学家al-Khwarizmi第一次在数学上提出了“算法”这个概念——演算法。算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法代表用计算机解一类问题的精确、有效的方法原创 2023-02-21 16:58:59 · 622 阅读 · 5 评论 -
[c语言]二叉树 非递归算法(先中后遍历)come
今天本篇文章将会讲解c语言二叉树的非递归算法并加附代码。非递归其实就是非递归遍历,非递归运用了 栈 的思想,包括了先中后3种方式遍历,费话不多说,开整。注:这里定义的flag会在后序遍历中用到。(用来标记结点是否被访问过)注:此处不再详细解释,如果不懂可以参考本站另一篇文章注:把栈置为空(初始化)注:入栈(头插法),即对指针进行操作。注:出栈之前要先判断一下是否为空栈,不为空再进行出栈,因为出的是栈顶元素直接指针断开即可。下面重点来了:非递归先序、中序,后序遍历。原创 2023-01-17 22:52:04 · 1332 阅读 · 8 评论