线性表(顺序表练习)

线性表的特征:

1. 第一个数据元素没有前驱,这个数据元素被称为头结点; 
2. 最后一个数据元素没有后继,这个数据元素被称为尾结点; 
3. 除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继。 
如果把线性表用数学语言来定义,则可以表示为(a1,...ai-1,ai,ai+1,...an),ai-1领先于ai, ai领先于ai+1,称ai-1是ai的前驱元素,ai+1是ai的后继元素。

线性表的分类:

线性表中数据存储的方式可以是顺序存储,也可以是链式存储,按照数据的存储方式不同,可以把线性表分为顺序表和链表。

线性表的储存结构:

1.顺序存储:逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现.借助于语言的数组来实现。

2.链式存储:不要求逻辑上相邻的结点物理上也相邻,结点间的逻辑关系是由附加的指针字段表示的,在java中使用“对象引用”来实现指针。

顺序储存结构:

根据存储结构不同,线性表分为顺序表和链表2大类。
以顺序存储结构进行存储的线性表称为顺序表。
顺序表存储结构采用顺序存储方式,逻辑上相邻的元素物理存储位置也相邻,元素存储都是连续的。由这种结构特点可知,顺序表可以随机访问快速定位某个元素,查找效率高,但删除和插入元素时,需要移动大量元素,效率低。
实现顺序表往往用到一维数组,并使用变量记录实际元素个数即顺序表的长度。

做一个练习:

假设你正在开发一个简单的学生管理系统,使用顺序表(SequenceList)来存储学生姓名。请完成以下任务:

1、创建一个可以存储字符串的顺序表,初始容量为10

2、添加以下学生姓名到顺序表中:“张三”, “李四”, “王五”,“赵六”。

3、在“李四”后面插入“李四”(注意:需要先找到“李四”的位置)

4、删除“李四”并从顺序表中移除

5、查找“李四”在顺序表中的位置(索引)

6、打印最终顺序表中的所有学生姓名

7、清空顺序表并验证它确实为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值