目录
前言
列表List是一种强大的数据集结构,提供了丰富的操作接口,但并不是所有的编程语言都提供了List数据类型。
本文的主角:无序表
什么是无序表?
一种数据项按照相对位置存放的数据集,特别的,被称为“无序集unordered list”,其中数据项只按照存放位置来索引,如第一个、第二个等等。
抽象数据类型无序表List的操作
List():创建一个空列表
add(item):添加一个数据项到列表中,假设item原先不存在于列表中
remove(item):从列表中移除item,列表被修改, item原先应存在于表中
search(item):在列表中查找item,返回布尔类型值
isEmpty():返回列表是否为空
size():返回列表包含了多少数据项
append(item):添加一个数据项到表末尾,假设item原先不存在于列表中
index(item):返回数据项在表中的位置
insert(pos, item):将数据项插入到位置pos,假设item原先不存在与列表中,同时原列表具有足够多个数据项,能让item占据位置pos
pop():从列表末尾移除数据项,假设原列表至少有1个数据项
pop(pos):移除位置为pos的数据项,假设原列表存在位置pos
采用链表实现无序表
虽然列表数据结构要求保持数据项的前后相对位置,但并不要求数据项依次存放在连续的存储空间。
虽然存放位置无规则,但如果在数据项之间建立链接指向,就可以保持其前后相对位置,第一个和最后一个数据项需要标记出来,一个是队首(Head),一个是队尾(End)。