线性表概述
线性表是最基本、最简单、也是最常用的一种数据结构。在线性表中数据元素之间的关系是线性,数据元素可以看成是排列在一条线上或一个环上。
线性表分为静态线性表和动态线性表,常见的有顺序表(静态的)、单向链表(动态的)和双向链表(动态的)。
线性表的操作主要包括:
(1)计算表的长度n。
(2)线性表是否为空
(3)将元素添加到线性表的末尾
(4)获取第i个元素,0≤i < n。
(5)清除线性表
(6)返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回 -1。
(7)返回列表中最后一次出现指定元素的索引,如果列表不包含此元素,则返回 -1。
(8)将新元素插入第i个位置,0≤i < n,使原来的第i,i+1,…,n–1个元素变为第i+1,i+2,…,n个元素。
(9)更改第i个元素
(10)删除第i个元素,0≤i < n,使原来的第i+1,i+2,…,n–1个元素变为第i,i+1,…,n–2个元素
由此,对线性表抽象数据类型定义List接口如下:
List接口
[java]
package list;
public inte易做图ce List {
/**
* 将元素添加到线性表的末尾
*/
public void add(Object e);
/**
* 清除线性表
*/
public void clear();
/**
* 获取i位置的元素
* @param i
* @return
*/
public Object get(int i);
/**
* 返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回 -1。
* @param e
* @return
*/
public int indexOf(Object e);
/**
* 在i后面插入一个元素e
* @param i
* @param e
*/
public void insert(int i, Object e);
/**
* 判断线性表是否为空
* @return
*/
public boolean isEmpty();
/**
* 回列表中最后出现指定元素的索引,如果列表不包含此元素,则返回 -1。
* @param e
* @return
*/
public int lastIndexOf(Object e);
/**
* 移除列表中指定位置的元素
* @param i
*/
public void remove(int i);
/**
* 用指定元素替换列表中指定位置的元素(可选操作)。
* @param i
* @param e
*/
public void set(int i, Object e);
/**
* 返回线性表的大小
* @return
*/
public int size();
}
线性表分为静态线性表和动态线性表,常见的有顺序表(静态的)、单向链表(动态的)和双向链表(动态的)。
线性表的操作主要包括:
(1)计算表的长度n。
(2)线性表是否为空
(3)将元素添加到线性表的末尾
(4)获取第i个元素,0≤i < n。
(5)清除线性表
(6)返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回 -1。
(7)返回列表中最后一次出现指定元素的索引,如果列表不包含此元素,则返回 -1。
(8)将新元素插入第i个位置,0≤i < n,使原来的第i,i+1,…,n–1个元素变为第i+1,i+2,…,n个元素。
(9)更改第i个元素
(10)删除第i个元素,0≤i < n,使原来的第i+1,i+2,…,n–1个元素变为第i,i+1,…,n–2个元素
由此,对线性表抽象数据类型定义List接口如下:
List接口
[java]
package list;
public inte易做图ce List {
/**
* 将元素添加到线性表的末尾
*/
public void add(Object e);
/**
* 清除线性表
*/
public void clear();
/**
* 获取i位置的元素
* @param i
* @return
*/
public Object get(int i);
/**
* 返回列表中首次出现指定元素的索引,如果列表不包含此元素,则返回 -1。
* @param e
* @return
*/
public int indexOf(Object e);
/**
* 在i后面插入一个元素e
* @param i
* @param e
*/
public void insert(int i, Object e);
/**
* 判断线性表是否为空
* @return
*/
public boolean isEmpty();
/**
* 回列表中最后出现指定元素的索引,如果列表不包含此元素,则返回 -1。
* @param e
* @return
*/
public int lastIndexOf(Object e);
/**
* 移除列表中指定位置的元素
* @param i
*/
public void remove(int i);
/**
* 用指定元素替换列表中指定位置的元素(可选操作)。
* @param i
* @param e
*/
public void set(int i, Object e);
/**
* 返回线性表的大小
* @return
*/
public int size();
}
顺序表
结构模型
图顺序存储结构内存结构示意图
源代码
[java]
package list;
补充:软件开发 , Java ,