- 列表基本定义
列表:一种数据按照相对位置存放的数据集。
无序表:数据的排列不具有顺序性,只按照存放位置来索引。
- 无序表的操作
这部分比较熟悉,在python里面有list类型。
append(item) | 在数据末尾添加一个数据项 |
index(item) | 返回数据项在表中的索引 |
insert(pos,item) | 将数据项插入到位置pos |
pop() | 从列表末尾移除数据项 |
pop(pos) | 移除位置为pos的数据项 |
由于无序表并不要求数据项依次存放在连续的存储空间,因此可采用链表实现无序表。
- 链表
链表:数据项存放位置并没有规则,但如果在数据项之间建立链接指向,则可以保持其前后相对位置。
链表内包含很多结点。其中每个结点的数据空间一般会包含一个数据结构(用于存放各种类型的数据)以及一个指针,该指针一般称为next,用来指向下一个结点的位置。每个节点至少要包含2个信息:数据项本身,以及指向下一个节点的引用信息。当next为None则表示没有下一个节点了。
用python对链表的实现:
1 class Node: 2 def __init__(self,initdata): 3 self.data = initdata 4 self.next = None 5 def getData(self): #返回数据项 6 return self.data 7 def getNext(self): #返回下一个节点 8 return self.next 9 def setData(self,newdata): #修改数据项 10 self.data = newdata 11 def setNext(self,newnext): #修改指向引用 12 self.next = newnext
用链表Node实现一个无须表:
class UnorderedList(): def __init__(self): self.head = None
这里首先需要定义无须表的表头head属性,保存对第一个节点对的引用空表head为None.
未完待续。。。