C/C++编程笔记:数据结构系列——顺序表的实现,内含源码

一、原理

1.定义

顺序表是在计算机中以数组形式保存的。

2.特点

在计算机中占用连续的一段内存

一旦声明,空间大小一般不变

二、初始化相关操作

包括:

(1)结构体的定义

(2)顺序表的创建

(3)顺序表清空

(4)判断顺序表是否为空

1.结构体定义

即定一个满足顺序表定义的结构体,其中包含 数组、存储长度、总长度。

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第1张图片

2.初始化

对顺序表进行初始化,包括分配自定义长度的数组空间,设定存储长度为0,存储长度为规定值

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第2张图片

3.清空

将顺序表内容清空,用于某些题目要求或节省空间

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第3张图片

4. 判断是否为空

判断顺序表是否为空,在某些操作之前,先要判断顺序表是否为空,防止出错

intisEmpty(struct List *L){returnL->length==0?1:0;//顺序表最大长度为0则为空返回1,否则返回0}

三、增加相关操作

包括:

(1)向表头插入元素x

(2)向表尾插入元素x

(3)向第n个位置插入元素x

(4)向递增的线性表中插入元素x,之后仍然保持有序

进行操作之前,还需要一个方法,当插入元素超过数组长度时,将数组容量扩大,即重新申请空间

Tip:将顺序表扩大一倍空间

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第4张图片

1.向表头插入元素x

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第5张图片

2.向表尾插入元素x

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第6张图片

3.向线性表L的第n个位置插入元素x

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第7张图片

四、删除相关操作

包括:

(1)删除表头元素并返回被删除的值

(2)第n个元素并返回被删除元素

(3)从线性表L中删除值为X的第一个元素

1.删除表头元素并返回被删除的值

删除表头第一个元素,长度减少1,返回被删除的值

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第8张图片

2.删除第n个元素并返回被删除元素

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第9张图片

3.从线性表L中删除值为X的第一个元素

从线性表L中删除值为X的第一个元素,若删除成功则返回1,否则返回0

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第10张图片

五、修改相关操作

包括:把线性表中第n个元素修改为x

1.把线性表中第n个元素修改为x

把线性表中第n个元素修改为x,若成功则返回1,失败返回0

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第11张图片

六、查找相关操作

包括:

(1)查找第n个位置的值

(2)顺序遍历输出所有值

(3)返回值等于x的下标

1.查找第n个位置的值

输入要查找的坐标,若合法则范围对应的值,若非法则提示并推出

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第12张图片

2.顺序遍历输出所有值

输出顺序表中的所有值

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第13张图片

3.查找值为x的节点并返回其坐标

输入要查找的值x,若存在则范围首次出现的下标,否则返回0

voidfindElem(struct List *L,ElemType x){inti;for(i=0;ilength;i++){if(L->list[i]==x){returni;}}}

七、总结

1.优点

查找方便

空间利用率高

2.缺点

删除和增加操作效率低

空间固定,不易扩展

八、完整代码

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第14张图片

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第15张图片

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第16张图片

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第17张图片

C/C++编程笔记:数据结构系列——顺序表的实现,内含源码_第18张图片

学习C/C++编程知识,想要成为一个更加优秀的程序员,或者你学习C/C++的时候有难度,可以来博主的C语言C++零基础编程学习圈,里面不仅有学习视频和文件资料,还有更多志同道合的朋友,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!

微信公众号:C语言编程学习基地

你可能感兴趣的:(数据结构,C++,数据结构,编程知识,顺序表,学习编程)