本篇文章算是对初阶数据结构的总结,内容较多,请耐心观看
基础概念部分
顺序表
链表
栈和队列
栈
特点
队列
特点
树
这两个图只是方便大家理解的。
堆
二叉树
几个重要概念
1. 满二叉树:一个二叉树的层数为K,且结点总数是2的k次 - 1,则它就是满二叉树。
2. 完全二叉树:当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树
3.结点的度: 结点含有的子树的个数
4. 结点的层次: 从根节点开始数
二叉树的特性
实操部分
顾名思义,数据结构是又有数据又有结构体因此初阶数据结构的每一部分内容的结构体给大家放在下方
各种初阶数据结构的结构体部分
顺序表
结构体内的元素:数组、有效的元素个数、空间大小
链表
结构体内的元素: 数、指向下一个节点的next指针
栈
队列
初始化以及销毁的思路部分
这里呢我也是找了以前写过的文章,给大家串一串这个部分该怎么写代码
初始化部分
将结构体内的元素进行初始化,eg. 结构体内的数组、指针之类的置为空,剩余的如空间、计数器等整型变量置为0即可,注意初始化前必须声明结构体不为空
销毁部分
先声明结构体以及需要释放的不为空,然后还原回与初始化相同即可。
当然这里的销毁具体情况还需要具体分析,如链表就是需要具体情况具体分析
插入部分
插入的前置条件
这个部分则是判断空间是否充足,那么这里的逻辑我就不继续讲解了,相信学到这里的小伙伴都是可以靠自己看懂这个代码的,当然啦如果又不懂的小伙伴可以评论区留言
插入数据
在空间充足的情况下 通过赋值的方式将数据插入,同时别忘了有效数字个数要加一哦。
当然除了上面那种写法外也可以写成:ps->arr[ps->size++] = x;
删除部分
首先需要声明你所要删除的结构体、有效长度、指针等等不为空,通过覆盖、释放函数等手段对其进行删除,有有效长度的需要减一,如果是指针,则需要释放并置空后,在指向下一个节点。
查找部分
这个部分先前是没怎么讲解过,那么我们先来看下实现这个函数,它的新参有哪些
从图中我们可以看出需要的有结构体和需要查找的参数,那么只需要遍历即可(如遍历数组,遍历链表等等)。当找到与我们所要寻找的参数数值相同时,即可返回(该结点等等)即可
以上这些仅仅是思路,如果你是属于那种没有思路,那么这篇文章就很适合你,此外光有这些还不够,最主要的就是画图,需要根据要求进行画图分析,然后将图解转换成代码
那么初阶数据结构系列的文章正式完结