
数据结构与算法(c语言实例)
文章平均质量分 96
一个物联网大二学生的《数据结构与算法》学习笔记
Felix Du
物联网工程本科在读
C、C++、python、javascript、stm32
邮箱地址:less_duuuzx@163.com
展开
-
数据结构与算法(九)双向链表
最后总结一下,双向链表相对于单链表来说,是要更复杂一点,每个结点多了一个prior指针,对于插入和删除操作的顺序大家要格外小心。关键就在于交换的过程中不要出现矛盾,例如第四步先被执行了,那么p->prior就会提前变成s,使得插入的工作出错。需要注意的是,在这里,由于这个是双向链表,那么对于链表中的某一个结点p,它的后继结点的前驱结点就是他自己。这就特别地麻烦,所以我们都知道,后来的火车就都有两个头了。这也是双向链表存在的必要性。如果刚才的插入操作理解了,那么接下来的删除操作理解起来就容易多了。原创 2024-10-13 17:16:31 · 894 阅读 · 1 评论 -
数据结构与算法(八)循环链表
循环链表是线性表中一个重要的模块,本文将从理论出发,回归实践,通过约瑟夫问题、魔术师发牌问题以及拉丁方阵问题三个现实模型问题切入,给学习这一部分内容提供不一样的思路和角度。数据结构与算法(c语言实例)_Felix Du的博客-优快云博客欢迎各位大佬批判指正!!所谓的循环,简单来说就是绕了一圈。打个比方:从前有座山,山上有座庙,庙里有一个老和尚,老和尚对小和尚说:从前有座山,山上有座庙......对于我们单链表来说,由于每个结点只存储了向后的指针,到了尾部标识就停止了向后链的操作。原创 2024-10-11 15:33:53 · 1846 阅读 · 0 评论 -
数据结构与算法(七)静态链表
静态链表是一种比较古老的用法了,一般用在没有指针操作的传统语言上,对于我们日常工作的使用,是大概率用不上这个操作方式的。考虑到考试的需要以及对静态链表思想的把握,笔者还是将这一部分的内容纳入数据结构与算法专栏的学习内容当中,如果没有考试需求的读者,可以根据自身情况忽略该部分介绍。另外后面加入了腾讯的一道面试题,供大家一起学习!数据结构与算法(c语言实例)_Felix Du的博客-优快云博客欢迎各位批判指正!原创 2024-10-05 11:00:00 · 1688 阅读 · 1 评论 -
数据结构与算法(六)线性表的链式存储结构
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。比起顺序存储结构每个数据元素只需要存储一个位置就可以的情况,现在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。也就是说链式存储需要两个位置来存放元素,一个是存放他本身,一个是存放他下一个数据元素的指针地址。我们把存储数据元素信息的域(所谓的域,其实就是一个地方而已)称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称为指针或链。原创 2024-10-03 16:51:43 · 1565 阅读 · 0 评论 -
数据结构与算法(五)线性表的顺序存储结构
举个现实中的例子:一群人排队去看电影(就和前几篇我们一直提到的关于排队的情景那样)当第一个同学进入到电影院,找到了自己的位置,接着后面的同学们果断地依次坐下,这样子就建立起了一个线性表。本算法的时间复杂度为O(1)刚才我们提到过排队的问题,如果这时候有一个人要回到队列当中,我们应该怎么做,我们会找到他要插入位置的那个同学,让他以及它后面的同学全部往后移动一个位置,再将新同学安排在这个位置里面。注意:数组的长度与线性表的当前长度需要区分一下:数组的长度是存放线性表的存储空间的总长度,一般初始化后不变。原创 2024-09-19 10:30:00 · 1934 阅读 · 7 评论 -
数据结构与算法(四)线性表的抽象数据类型描述
升旗后领导开始发言,领导发言的时候,下面的张三在说话搞小动作,年级主任找到班主任投诉,说:“你们班队伍里第八个同学在下面搞小动作,麻烦你去处理一下。当然,有删除数据就会有插入数据,几天过后,张三同学康复回来上课了,他说他记得排在李四的后面,所以原本排在张三后面的同学就往后挪了一个位置,张三就插入回自己的位置上了。排好队之后,我们发现张三由于昨晚睡觉没盖被子,感冒发烧来不了了,那么张三原来的位置就被空出来了,由原来排在张三后面的同学开始往前挪。外,每一个元素有且只有一个直接前驱元素,除了最后一个元素。原创 2024-09-17 10:58:42 · 1164 阅读 · 1 评论 -
数据结构与算法(三)线性表的定义与抽象数据类型
同样,在计算机中,内存也不是无限大的,你要计算如1+1=2这样的整型数字的加减乘除运算,显然不需要开辟很大的内存空间。于是,商品房就出现了各种各样的房型,有120平,有80平,有30平......这样就能满足大家的需求,大家可以根据自己的继续住进对应的房子里。比如1+1=2这枰一个燥作,在不同CPU的处理上可能不一样,但由于其定义的数学特性相同,所以在计算机编程者看来,它们都是相同的。分析:这个当然也不是,一个同学可以由好多个朋友,两个同学间也可以由好多共友,更像是一个复杂的图,网络,所以也不是线性关系。原创 2024-09-09 13:22:37 · 1217 阅读 · 1 评论 -
数据结构与算法(二)时间复杂度与空间复杂度
本文分三个部分对数据结构与算法中:算法的时间复杂度与空间复杂度进行介绍,并提供大量的实例结合分析,帮助初学者掌握了解相关知识。原创 2024-09-08 09:13:47 · 1008 阅读 · 0 评论 -
数据结构与算法(一):绪论
一句话:程序设计=数据结构+算法。简单来说,数据结构就是一种关系,是数据元素相互之间存在的一种或多种特定关系的集合。原创 2024-09-06 10:43:44 · 1298 阅读 · 0 评论