
数据结构
文章平均质量分 93
数据结构学习历程
孤寂大仙v
悟已往之不谏,知来者之可追
展开
-
常见排序算法
然后让左边找到的值与右边找到的值交换位置,如果不大于key的值或者不小于key的值左边继续往右走右边继续往左走。当begin和end相遇的时候,把相遇位置的值与key位置的值交换位置。然后进入循环,如果tmp的值小于end位置的值就让end位置的值覆盖end+1位置的值,让end的值往后走,end下标位置–。如果tmp位置的值大于end位置的值就把tmp位置的值放入end位置的后面,这里的循环判断条件是end>0。然后把最大值与之前end位置的值交换位置,最小位置的值与之前begin位置的值交换位置。原创 2024-06-08 18:52:06 · 1984 阅读 · 49 评论 -
【数据结构】二叉树(超详细,初学者看必懂)
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点,除根节点外其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1原创 2024-06-01 09:30:17 · 2434 阅读 · 40 评论 -
【数据结构】栈和队列
这篇文章来讲数据结构中的栈和队列,栈和队列都是用顺序表来实现的是两种特殊的顺序表。原创 2024-05-13 20:29:51 · 1445 阅读 · 42 评论 -
环形链表理解||QJ141.环形链表
慢指针叫slow,快指针叫fast,假设slow进环时,fast与slow的距离为N时,这里fast走两个slow走一个。c-1为偶数时之所以能追上,是因为当fast和slow都走起来时相对位移是2,所以为偶数时下一轮就追上了。所以上面的结论不成立。假设从初始位置到进入环的距离为L,fast与slow的距离为N。当N为奇数时,假设N为5,3 1 -1这时就错过了,进行新一轮的追击。当N为偶数时,假设N为4,4-2为2 4-4为0这时就追上了。这时候fast和slow的距离就变成了c-1,c为环的长度。原创 2024-05-07 18:42:49 · 507 阅读 · 36 评论 -
数据结构之顺序表
当我们想要使用大量同一类型数据时,通过手动定义大量的独立的变量对于程序员来说可读性非常差。我们可以借用数组这样的数据结构将大量的数据组织在一起,结构也可以理解为组织数据的方式。概念:数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据元素的集合。数据结构反映数据的内部构成,即数据由那部分构成,以什么⽅式构成,以及数据元素之间呈现的结构。组织和管理数据提高算法效率节省内存空间简化代码提高代码的可读性和可维护性支持抽象数据类型(ADT)原创 2024-04-09 20:34:43 · 1807 阅读 · 18 评论 -
基于顺序表实现通讯录
我们之前实现顺序表的时候,顺序表储存的是整型类型的数据。我们要想实现通讯录的话,那么存储的类型应该是储存自定义类型的数据。这个自定义类型的数据应该是结构体。先在通讯录的头文件在定义通讯录的结构201020100int age;}peoInfo;因为通讯录的实现是基于顺序表的,要将顺序表中存放的数组类型改为结构体类型,也就是我们定义的通讯录结构体。int size;}SL;注意不要忘了头文件。下面就要在通讯录头文件中声明函数了,想一下。原创 2024-04-14 19:33:49 · 1361 阅读 · 19 评论 -
【数据结构】单链表
单链表和顺序表一样都是属于数据结构中的一部分,下面来总结和实现单链表。原创 2024-04-21 11:57:10 · 1155 阅读 · 13 评论 -
【数据结构】双向链表
和之前我们实现的单链表一天,创建头文件(.h)和源文件(.c),测试文件创建出来test.c}LTNode;双向链表一个节点由数据和指向下一个节点的指针指向上一个节点的指针组成。原创 2024-04-25 17:27:17 · 1330 阅读 · 30 评论