python数据结构系列之单链表(一)

来源:互联网 发布:js prototype proto 编辑:程序博客网 时间:2024/05/16 08:54

        近来发现网上可供参考的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的强大之处了吗,短短几行代码,就实现了对链表的构建以及遍历,各位可以在这上边的基础上扩充下,比如给链表加上一些插入、删除、定位、求链表长度等等方法。

今天先更新到这里,未完待续!

1 0
原创粉丝点击