《数据结构( Java 版)(第 3 版)》
目的和要求
•
目的:实现线性表抽象数据类型。
•
内容:将线性表的顺序存储结构和链式存储结构 实
现分别封装成顺序表类、单链表类、循环 双链表
类等,比较这两种实现的特点以及各 种基本
操作算法的效率。
•
要求:理解线性表抽象数据类型,掌握顺序和链式
存储结构实现线性表的方法。
•
重点:顺序表、单链表、循环双链表等线性表的设
计训练。
•
难点:使用指针实现链式存储结构,通过指针操作
改变结点间的链接关系。
•
实验:掌握单链表的遍历、插入、删除、复制等操 作
算法,熟悉循环单链表、双链表和循环双 链表的
结构和基本操作。掌握 MyEclipse 集 成开发环境的
程序调试技术。
《数据结构( Java 版)(第 3 版)》
2.1 线性表的抽象数据类型
LinearList=(a
0
, a
1
,…, a
n - 1
)
public interface LList<T>
{ // 线性表接口,泛型参数 T 表示数据元素的数据类型
boolean isEmpty(); // 判断线性表是否空
int length(); // 返回线性表长度
T get(int i); // 返回第 i ( i≥0 )个元素
void set(int i, T x); // 设置第 i 个元素值为 x
void insert(int i, T x); // 插入 x 作为第 i 个元素
void append(T x); // 在线性表最后插入 x 元素
T remove(int i); // 删除第 i 个元素并返回被删除对象
void removeAll(); // 删除线性表所有元素
T search(T key); // 查找,返回首次出现的关键字为 key 元素
}
public class SeqList<T> implements LList<T> // 顺序表
类
public class SinglyLinkedList<T> implements LList<T> // 单链
表类
《数据结构( Java 版)(第 3 版)》
2.2 线性表的顺序表示和实
现
1. 线性表的顺序存储结构
ciaLo caLoc
i
)()(
0
《数据结构( Java 版)(第 3 版)》
public class SeqList<T> implements
LList<T>
{ // 顺序表类,实现线性
表接口
protected Object[] element; // 对象数组
protected int len; // 顺序表长度,记载元素个
数
}
2. 顺序表类
element
A
B
0
C
1
2
len-1
5
len
list
3
D
E
null
…
null
element.length-1
- 1
- 2
前往页