数据结构与算法(9)——无序表List

  • 列表基本定义

列表:一种数据按照相对位置存放的数据集。

无序表:数据的排列不具有顺序性,只按照存放位置来索引。

  • 无序表的操作

这部分比较熟悉,在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.

未完待续。。。

参考:https://www.bilibili.com/video/BV1QJ411w7bB?p=28

猜你喜欢

转载自www.cnblogs.com/yeshengCqupt/p/12602660.html