赞
踩
线性表的实现
一. 线性表的抽象数据类型(ADT)描述
类型名称:线性表(List)(由同类型数据元素构成的有序序列的线性结构)
=> 表中的元素个数称为线性表的长度
=>线性表中没有元素时,称为空表
=>表起始位置称为表头,表结束为止称为表尾
1.数据对象集: 线性表示n(>=0)个元素构成的有序序列(a1, a2, ..., an)
2.操作集:线性表 L 属于 List, 整数i表示位置, 元素X 属于 ElemmentType, 线性表的基本操作主要有:
①初始化一个空线性表(这里以ArrayList为例)(Java)
List<T> list = new ArrayList<>();
②根据位序K, 返回相应元素
- int i = 10;
- List<String> list = new ArrayList<>();
- list.get(i);
③ 在线性表中查找X第一次出现的位置
④插入操作,在位序i前面插入一个新元素
⑤删除指定位序i的元素
⑥返回线性表的长度
二. 线性表的顺序存储实现:
1. 利用数组的连续存储空间顺序存放线性表的各个元素
①初始化方法
②查找方法
③插入方法
④删除方法
⑤get方法
- public class List{
- private int last;
- private int length;
- private Object[] data = new Object[length];
-
- public Object[] makeEmpty(int length){
- this.length = length;
- Object[] objects = new Object[length];
- this.data = objects;
- this.last = -1;
- return data;
- }
- public int find(Object element){
- for(int i = 0; i < last; i ++){
- if(element.equals(data[i]))
- return i;
- }
- return -1;
- }
- public void insert(int i, Object element){
- if(i < 0 || i > last){
- System.out.println("不合法操作");
- return;
- }
- else if(last == data.length){
- Object[] newList = new Object[2 * length];
- System.arraycopy(data, 0, newList, 0, data.length);
- data = newList;
- }
- for(int j = last; j > i; j--){
- data[j] = data[j-1];
- }
- data[i] = element;
- last++;
- }
- public Object get(int i ){
- if(i >= 0 && i <= last){
- return data[i];
- }
- return null;
- }
- public void delete(int i){
- if(i < 0 && i > last){
- return;
- }
- for(int j = i; j < last; j++){
- data[j+1] = data[j];
- }
- last--;
-
- }
- }

以上是个人的实现,有问题的烦请dalao指出qwq(大一学生,以此来记录学习数据结构的一些心得)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。