无序表的实现
- 无序表是一种线性结构,对比有序表(元素的位置是根据其值的大小而设定的),无序表的元素位置不是因为其值的大小而改变。类似于Python中的List。Python中的List是以顺序存储的方式实现的,本文以链式存储的形式实现无序表,所以元素互称为前驱元素,后继元素。
无序表的方法主要有增加元素、删除元素、查找元素、无序表大小、是否非空等等。简单实现了几个方法(和c语言实现的方法类似)。
以链表的形式实现,就需要有节点node,节点中有两个变量,一个存储当前节点的值,另一个存储下一个节点的对象(对比c语言中的指针地址)。节点类的方法有,给节点赋值,取节点值,给节点赋下一个节点的对象,取节点下一个节点的对象。定义类如下:
class Node(object):
def __init__(self, initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self, newdata):
self.data = newdata
def setNext(self, newnext):
self.next = newnext
接下来看无序表如何实现,首先考虑一下无序表是空时(没有元素,没有节点),内部是什么形式的。这个其实不容易想