c 定义结构体时提示应输入声明_C/C++编程笔记:数据结构系列——顺序表的实现,内含源码...

19a30b2673fcd710d09d378d843de58e.png

一、原理

1.定义

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

2.特点

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

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

二、初始化相关操作

包括:

(1)结构体的定义

(2)顺序表的创建

(3)顺序表清空

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

1.结构体定义

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

000c9b4cee8104f1754bc223748b75ab.png

2.初始化

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

defe2b88a295b98b3de789207ce5898e.png

3.清空

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

b9d626c08005be770d10fd9250218126.png

4. 判断是否为空

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

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

三、增加相关操作

包括:

(1)向表头插入元素x

(2)向表尾插入元素x

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

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

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

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

9bae291a56567a893a5be8bb2d9baa2d.png

1.向表头插入元素x

979deceb2ca4a23f33271eb913d3f9b9.png

2.向表尾插入元素x

b9ac758bb578fdc4ed8478c72054d175.png

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

27be10a345873f4196282fe187ec8840.png

四、删除相关操作

包括:

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

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

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

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

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

5c50f543b1a9096688676e5ed953c302.png

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

cf1dc6a4c896bc04720da25b7db89116.png

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

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

ebcc7d888a76152a7b953719782b4e76.png

五、修改相关操作

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

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

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

19d00bb01ec7685571e3de6ea25a048a.png

六、查找相关操作

包括:

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

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

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

1.查找第n个位置的值

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

3b0b34de4a081821de29f5c2143ddc55.png

2.顺序遍历输出所有值

输出顺序表中的所有值

efda09988cb9fe0867d8f5aa18f8bf5a.png

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

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

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

七、总结

1.优点

查找方便

空间利用率高

2.缺点

删除和增加操作效率低

空间固定,不易扩展

八、完整代码

8530fd8628bf27bc720396b3382d7549.png

6712e6c6251e9f12f4b63772137b0c9d.png

4fb044022ed53b35f5fd6a43a54938b1.png

689a519d0e23ca812c68e84de04ca6c2.png

37d2ed3ae3bb23c8fb12d7fa4b408100.png

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

学习C/C++编程知识,欢迎关注笔者学习专栏一起成长:

C/C++编程学习聚集地​zhuanlan.zhihu.com
12f8874a40d814a40e42e94d34f38322.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
研究生考试课程为4门,其中数学、外语、政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题。国家对初试录取分数有总分要求(如某一年要求4门课总分达到310分),另外还有对每门课的最低分数要求(如总分为100的试卷最低达到40分,总分为150的试卷最低达到65分)。编程统计初试合格的人数,并按总分由高到低的顺序输出合格考生的信息。 基本要求:程序运行首先要求输入:考生姓名,准考证号,报考专业,是否届生,4门课程(政治、数学、外语、专业基础课)成绩。这些原始数据保存到一个文件中。然后输入:录取的总分要求,各课程的最低分数要求。输出要求:过线考生的姓名,准考证号,报考专业,是否届生,4门课程(政治、数学、外语、专业基础课)成绩及总分,这些信息存放到另一个文件中。 测试数据:程序输入不少于10名考生的信息,其中届生和历届生分别有若干名,并且都有合格和不合格的情况。 实现提示:可定义一个考生类存放有关信息和实现的操作。分数线数据(总分要求和各门课程的要求)可定义另外的类来存放,但能被考生类及其派生类直接访问。 其它要求:初试合格的考生经过复试才能决定是否录取,复试成绩合格(大于一给定分值)可以录取,否则被淘汰。而录取的顺序假设是按照专业基础课和复试成绩的平均值来确定的(因为这涉及到是计划内还是委培问题)。因此,首先输入初试合格考生的复试成绩及复试的合格线分数,然后按上面要求排序输出并标明被淘汰的学生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值