![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 71
掌握数据结构是必须的啦
我不吃辣。
快乐的嵌入式
展开
-
程序员常用的几种算法(建议刚毕业或者在找实习的大学生看看)
写这篇文章是因为最近开始很多计算机行业的大学生出来上班找实习了,既然找工作就要经历笔试题,技术面,人事面,一般来说是这三个面(本人当时找工作就是这样)。我也刚出来工作一年,我从事的是嵌入式行业的工作,刚出来投简历和面试过五六家公司,做过笔试题也是有挺多的。如果同学们想看看企业笔试题长什么样的话也是可以找我发几份给你做做,(偷拍下来的哈哈)。以我嵌入式行业来说的话,笔试题主要考查的内容还是C语言比较多。话不多说,进入今天的正题吧,今天带大家了解一下算法。原创 2024-03-31 18:54:04 · 2278 阅读 · 2 评论 -
数据结构--栈
只要满足上述条件,那么这种特殊的线性表就会呈现一种“后进先出”的逻辑,这种逻辑就被称为栈。栈在生活中到处可见,比如堆叠的盘子、电梯中的人们、嵌套函数的参数等等。不管是顺序栈,链式栈,栈的操作逻辑都是一样的,但由于存储形式不同,代码的实现是不同的。栈只是一种数据逻辑,如何将数据存储于内存则是另一回事。一般而言,可以采用顺序存储形成顺序栈,或采用链式存储形成链式栈。栈是一种逻辑结构,是特殊的线性表。原创 2024-03-29 22:00:00 · 439 阅读 · 2 评论 -
数据结构——顺序表
当采用顺序存储的方式来存放数据时,唯一能用来表达数据间本身的逻辑关系的就是存储位置。比如队列中的两个人,小明和小花,如果小明在逻辑上排在相邻的小花的前面,那么在存储位置上也必须把小明存放在相邻的小花的前面。顺序存储中,由于逻辑关系是用物理位置来表达的,因此从上述示例代码可以很清楚看到,增删数据都非常困难,需要成片地移动数据。顺序表对数据节点的增删操作是很不友好的。顺序存储就是将数据存储到一片连续的内存中,在C语言环境下,可以是具名的栈数组,或者是匿名的堆数组。原创 2024-03-29 21:32:28 · 306 阅读 · 0 评论 -
数据结构--队列
与其他的逻辑结构类似,队列可以采用顺序存储形成循环队列,也可以采用链式存储形成链式队列。顺序存储的队列之所以被称为循环队列,是因为可以利用更新队头队尾的下标信息,来循环地利用整个数组,出队入队时也不必移动当中的数据。从上图可以看到,链式队列主要控制队头和队尾,由于管理结构体中保存了当前队列元素个数size,因此可以不必设计链表的头节点,初始化空队列时只需要让队头队尾指针同时指向空即可。队列是最常见的概念,日常生活经常需要排队,仔细观察队列会发现,队列是一种逻辑结构,是一种特殊的线性表。原创 2024-03-29 22:06:17 · 408 阅读 · 1 评论 -
数据结构--双向链表
当然,我们经常在剔除了一个节点之后,紧接着的动作往往是释放它,但是将“剔除”与“释放”两个动作分开,是最基本的函数封装的原则,因为它们虽然常常连在一起使用,但它们之间并无必然联系,例如:当我们要移动一个节点的时候,实质上就是将“剔除”和“插入”的动作连起来,此时就不能释放该节点了。对链表而言,双向均可遍历是最方便的,另外首尾相连循环遍历也可大大增加链表操作的便捷性。由于链表中的各个节点被离散地分布在各个随机的内存空间,因此销毁链表必须遍历每一个节点,释放每一个节点。原创 2024-03-29 21:53:44 · 430 阅读 · 1 评论 -
数据结构--单链表
上图中,所有的节点均保存一个指针,指向其逻辑上相邻的下一个节点(末尾节点指向空)。另外注意到,整条链表用一个所谓的头指针 head 来指向,由 head 开始可以找到链表中的任意一个节点。首先,空链表有两种常见的形式。由于头结点是不存放有效数据的,因此如果空链表中带有头结点,那么头指针 head 将永远不变,这会给以后的链表操作带来些许便捷。由于链表中的各个节点被离散地分布在各个随机的内存空间,因此销毁链表必须遍历每一个节点,释放每一个节点。这些不同链表的操作都是差不多的,只是指针数目的异同。原创 2024-03-29 21:41:14 · 608 阅读 · 0 评论 -
数据结构——基本概念
数据结构概念原创 2024-03-29 21:15:39 · 162 阅读 · 0 评论