顺序表可以说是数据结构的入门,本文将从代码的角度讲述一个简单动态顺序表的实现(顺序表的基本操作)。(声明,up主纯编程小白,写这篇文章仅当巩固知识,检验学习成果,嘿嘿,就是玩(●'◡'●) )
一:预处理阶段
我们需引入两个头文件,定义顺序表的初始化长度,以及定义自己的bool类型(看个人喜好),第一行代码是为了能让我们使用scanf函数。
预处理
二:学生类型的创建以及定义顺序表
我们创建一个简单的学生类型并定义顺序表
学生类型
创建顺序表
三:顺序表的初始化
初始化
这里需要注意内存开辟的问题
四:顺序表的打印
要验证我们的操作是否真确,打印函数是必不可少的
五:顺序表的扩容操作
当顺序表的元素满时或大小不满足需要时,我们便需要对其进行扩容,使用两个参数,第一个传入顺序表的地址,第二个传入你需要增多的空间大小。我们这里使用realloc会更简单一些。
扩容
六:顺序表的真创建doge
该操作用于给顺序表添加元素,我们这里采用手动添加╮(╯▽╰)╭。使用两个参数,第一个参数传入顺序表的地址,第二个参数传入要添加的元素个数。
不要忘了添加完元素,将表长更新
七:顺序表的排序
只演示按成绩用冒泡排序进行升序,也可按学号等(可以在函数中使用多分支来选择排序的依据)。
八:顺序表的插入
顺序表的插入操作,每插入一次,我们都要将其后的元素往后移一位。我们还需要考虑是否满足插入条件。
不要忘了表长加1哦
九:顺序表的删除
顺序表的删除操作比较简单,只需要移位即可。
从要删除元素的位置开始进行覆盖,前一位元素等于后一位元素
九:顺序表按指定元素查找
由于在我们写的学生类型中,只有学号具有唯一性,所以我们按学号进行查找。需要注意的时,我们的学号定义为char类型,于是我们需要对其进行强制转换为int型,以方便判断。(早知道直接定义为int型了,算了懒得改了┭┮﹏┭┮)。
找当指定元素,我们便结束遍历。
十:顺序表的按位查找
由于顺序表的特性,按位查找实在十太简单了。
终于写完了,一边敲代码,一边写这个,一个晚上就过去了。希望能对你们有点用处。加油(ง •_•)ง,编程可比打go有趣多了。
时间:2024, 4 ,11 23:16
本文禁止转载或摘编
本文为我原创