前沿:
为了更好的提高我们的编程水平,数据结构是必不可少的,本节我来概述一下数据结构的顺序表。
思维导图:
目录
1.1 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结 构,常见的线性表:顺序表、链表、栈、队列、字符串... 而首先我们要学习的是顺序表。
2.1 顺序表概念:
1. 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组 上完成数据的增删查改。
2.2 顺序表的结构:
3.1 顺序表的静态存储:
3.3 顺序表的初始化:3.4检查容量 :
······通过FindCapicity函数来检查容量是否已满 如果已经满了则需要进行2倍扩容。
3.5顺序表的打印:
·····通过SeqListPrintf函数来实现我们数据的打印
3.6顺序表的销毁:
·······当整个顺序表结束后要对他进行一个销毁 ,这里我们通过一个SeListDestory函数来进行实现这个功能吧。
现在顺序表功能实现的前提工作我们都已经完成。接下来就是实现顺序表如何进行增删查改。
4.1 顺序表的增删:
4.1.1顺序表尾插:
这就可以在主函数里面进行测试了 ,写代码要养成一个习惯就是不能够一下子写完所有代码而是写一个代码块就进行测试。这里我们就可以进行一个初步的测试
4.1.2 顺序表尾部删:
同时进行测试 大家一定要养成测试的习惯呀。
4.13 顺序表头插:
大概的思路也很简单就是通过数组往后去一位最后留下首位置插入你添加的元素。
测试结果为:
4.14 顺序表头删:
他的思路就是和头插差不多就是通过后一位代替前一位实现
测试结果为:
4.2 顺序表的查找:
顺序表的查找有很多的方式暴力查找,二分查找等等。这里我运用的是暴力查找的方法,因为二分查找的一个条件需要你进行先排序,在查找。
二分查找在查找很大数据的时候是优于暴力查找的但是这里我用的数据比较少所以用暴力查找的方法啦 他的实现方式为:
测试结果为:
4.3顺序表在任意位置插入:
这大概的思路都差不多呀,和首插的区别就在于首插的的下标是0,但任意位置插入的位置就不确定啦。
而代码的测试结果也很容易啦
4.4顺序表在任意位置删除
就不多讲啦看代码很容易就实现的。
测试结果:
到这里我们顺序表的所有功能就实现完啦!!
顺序表并不是特别的难,我们把顺序表当成数组就行啦,所以说顺序表的功能实现是很容易的。
但顺序表也有很多的缺点,例如: