什么是线性表
零个或多个数据元素的有限序列。
非空线性表的逻辑结构特征
有且仅有一个开始结点,无直接前趋,有且只有一个直接后继
有且仅有一个结束结点,有且只有一个直接前趋,无直接前驱。
内部结点都有且只有一个直接前趋和一个直接后继
对于同一线性表,数据类型一直,数据元素长度一致。
线性表基本运算
基本运算包括
initList
初始化操作,建立一个空的线性表
listEmpty
若线性表为空,返回true,否则返回false
clearList
将线性表清空
getElem(index)
将线性表中第index个位置的元素值返回
locateElem(data)
在线性表中查找与data值相等的元素,查找成功返回该元素在线性表中的索引,否则返回-1
listInsert(index,data)
在线性表中第index个位置插入data
listDelete(index)
删除线性表第index个位置元素,返回该值
listLength
返回线性表实际存储元素个数
getAll
遍历线性表
链表结构分类
单链表:普通链式结构,每个结点只包含一个应用
单循环链表:单链表的基础上,将终端结点的引用域null改为指向表头节点即可
双向链表:每个结点包含两个引用,一个指向下一个结点,一个指向上一个结点
双向循环链表:双向链表的基础上,终端结点的向下引用域指向表头结点,表头结点的向上引用域指向表尾结点。
静态链表:使用数组描述的链表。
数组第一个元素的cur存放备用链表的第一个结点的下标。
数组的最后一个元素的cur用来存放第一个插入元素的下标,相当于头结点。
单链表结构
Java