线性表
概述
定义
-
除了第一个元素和最后一个元素之外,每一个元素都只有一个前驱元素和一个后继元素
-
线性表是一种可以在任意位置进行插入和删除操作的,由n个同类型数据组成的线性结构
抽象数据类型
-
数据集合:每个数据元素的数据类型都是抽象数据元素的数据类型DataType
-
操作集合:
1.初始化:ListInitiate(L) 初始化线性表L
- 求当前元素的个数ListLength(L)
- 插入数据元素ListInsert(L,i,x):在线性表L的第i个数据元素前插入元素x,插入成功返回1否则返回0
- 删除数据元素ListDelete(L,i,x):删除线性表L的第i个元素,所删除的数据由x带回
- 取数据元素ListGet
顺序表
-
静态数组实现顺序表
MaxSize:数组list的最大存储单元个数
list:用于存储顺序表数据的数组
size:当前存储的数据元素个数
代码实现
package list; public class seqList<T> { //表示数组元素的最大个数 public int MaxSize; //用于存储顺序表数据的数组 public Object[] list; //size表示顺序表当前存储的数据元素个数 int size; seqList() { } seqList(int maxSize) { this.MaxSize=maxSize; this.list=new Object[MaxSize];//直接建立引用就好了 listInitiate(); } //初始化定义数据元素个数 public void listInitiate() { size=0; } //求当前元素的个数 public int listLength() { return size; } //插入数据元素,成功返回true,失败返回false public boolean listInsert(int i,T x) { //判断插入的位置在i<=size if(i<0||i>size) { System.out.println("插入位置不合法"); return false; } //判断顺序表没有满 if(size>=MaxSize) { System.out.println("顺序表已满"); return false; } //后面的元素往后移 for(int j=size;j>i;j--) { list[j]=list[j-1]; } //把数据插入到空位中 list[i]=x; //个数增加1 size++; return true; } //删除数据元素 public boolean listDelete(int index) { //判断有没有元素,没有则返回 if(size==0) { System.out.println("list is null"); return false; } //判断坐标是否合理 if(index>size||index<0) { System.out.println("index is not valid"); return false; } for(int i=index;i<size-1;i++) { list[i]=list[i+1]; } size--; return true; } public T listGet(int index) { //判断取得坐标是否合法 if(index<0||index>size) { System.out.println("index is not valid"); return null; } return (T)list[index]; } //打印顺序表 public void listShow() { for(int i=0;i<size;i++) { System.out.println(list[i]); } } }
实例化
package list;
/*
* 建立一个学生情况表。依次显示当前表中得数据元素,假设元素不会超过100个
* 表中存储信息:学号 性别 年龄
* */
class Student{
int number;
String name;
String sex;
int age;
public Student(int number, String name, String sex, int age) {
this.number = number;

线性表是一种数据结构,其特点为每个元素有一个前驱和一个后继,支持在任意位置插入和删除操作。该文介绍了线性表的抽象数据类型,包括初始化、获取元素个数、插入和删除等操作。接着详细讲解了顺序表的静态数组和动态数组实现,并重点阐述了链表的概念,包括单链表、双链表和循环链表的特性。此外,还提供了链表的实践练习,如有序插入和链表排序。
最低0.47元/天 解锁文章
3610

被折叠的 条评论
为什么被折叠?



