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

        近来发现网上可供参考的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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值