python使用单链表节点类 您所在的位置:网站首页 python调用node python使用单链表节点类

python使用单链表节点类

2024-07-16 18:52| 来源: 网络整理| 查看: 265

节点变量会初始化为None值或者一个新的None对象。

class Node(object): def __init__(self, data, next=None): self.data = data self.next = next # 仅仅是空链接 node1 = None # 一个包含数据和空链接的节点 node2 = Node("A") # 一个包含数据和链接node2的节点 node3 = Node("B", node2)

下图表示在运行该节点之后3个变量的状态:

注意如下情况:

node1没有指向节点对象(是None)。 node2和node3指向所链接到的对象。 node2指向一个对象,其下一个指针为None。

现在,假设你试图运行如下的语句,在已经包含了node2和node3的链接结构的开头位置添加一个节点:

node1.next = node3

python会抛出一个AttributeError作为响应。作出这一响应的原因是,变量node1包含了值None,因此不会引用包含了一个next字段的对象。

要创建我们想要的链接,如下:

node1 = Node("c", node3)

或者,如下:

node1 = Node("c") node1.next = node3

通常在尝试访问一个给定的节点变量之前。我们可以通过询问其是否为None。从而保证其不发生意外:

if nodeVariable != None:

像数组一样,链表结构也是用循环来处理的。可以使用循环来创建一个链表结构,并且访问其中的每一个节点。

下面是测试脚本使用了Node类来创建一个单链表结构,并且输出其内容:

# coding: utf-8 class Node(object): def __init__(self, data, next=None): self.data = data self.next = next head = None for count in range(1,6): head = Node(count, head) while head != None: print head.data head = head.next

关于这个程序,注意以下几点:

指针head生成了链表结构。这个以这样一种方式操作,最近插入的项总是位于结构的开始处。 因此,当显示数据的时候,他们按照插入时相反的顺序出现。 此外,当显示数据的时候,head指针重新设置为下一个节点直到head指针变为None。因此,这个过程的最后,节点实际上从链表结构中删除了。对于顺序来说,节点不可再用,并且会在下一次垃圾回收的时候回收。

 结束!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有