近来发现网上可供参考的python相关的数据结构方面的资料很少,便想起来写这一系列博文,本系列文章将从最简单的单链表开始,循序渐进一直到树、图等复杂的数据结构,争取每天一更,希望大家多多支持、指正。
链表结点:每个节点是一个二元组,一个表示数据域(用data表示),一个表示指针域(用next表示),数据域用来存储该节点的数据部分,指针域用来存储下一个结点的引用
结构如图:
单链表:由一个一个的结点组成,每个结点都是一个对象,有自己的标识,结点与结点之间通过指针域链接,从而建立起单向的顺序联系
具体代码如下:
class LNode(object):
def __init__(self,data,next_=None):
self.data = data
self.next = next_ //为了与python标准函数next区分
上边只是构造一个链表结点对象,为了能生成链表我们需要将一个一个的结点链接起来,而且为了能够对链表进行遍历,我们还需要为链表加上一个头指针,以下是一个简单的构建链表以及遍历链表的完整代码:
class LNode(object):
def __init__(self,data,next_=None):
self.data = data
self.next = next_
list1 = LNode(1)
p = list1
for i in range(2,11):
p.next = LNode(i)
p = p.next
p = list1
while p is not None:
print p.data
p = p.next
感受到了python的强大之处了吗,短短几行代码,就实现了对链表的构建以及遍历,各位可以在这上边的基础上扩充下,比如给链表加上一些插入、删除、定位、求链表长度等等方法。
今天先更新到这里,未完待续!