• 技术文章 >后端开发 >Python教程

    python单链表中如何插入和输出节点?(代码示例)

    青灯夜游青灯夜游2019-03-18 11:56:28原创5204
    python单链表中如何插入和输出节点?下面本篇文章就来带大家了解一下单链表是什么,如何对单链表执行的一些非常基本的操作,例如:插入、输出,希望对大家有所帮助。

    单链表是什么?

    首先在了解单链表之前,我们必须了解一下节点是什么。

    节点是链表的构建块,它由两部分组成:

    1、数据部分:用于包含数据

    2、地址部分:用于指向下一个节点位置的指针。

    在单链表中,每个节点的地址部分包含有关下一个节点位置的信息;这形成一系列的链条或链环。链接列表的第一个节点由头部指针跟踪;最后一个节点指向None。

    让我们看看下面的图表来更好地理解这一点:

    1.jpg

    注意: 在上图中,最后一个元素1指向None。 即使这些节点彼此连续绘制,实际上它们可能或可能不在连续的存储器位置中。

    单链表如何插入和输出节点?

    1、创建单链表

    首先,您必须创建一个节点才能创建单链表。为此,我们使用data和nextNode属性创建一个Node类。如前所述,data属性将包含数据,而nextNode将简单地指向链表中的下一个节点。我们将默认值nextNode是无。您可以使用getter和setter方法来执行此操作。

    现在已经创建了Node类,现在是时候创建LinkedList类了。这只有一个属性,head。默认情况下,这将指向“ None”。如果头部指向“ None”,则表示 链接列表为空。为了跟踪链表中的节点数,我们可以向LinkedList类添加一个 size属性,并将其默认为0。

    2、插入节点

    这是LinkedList类的方法。我们可以在链接列表中的任何位置插入新节点,但为了使编码简单有效,我们将始终将新节点添加到链表的开头;换句话说,头部将始终指向最近添加的节点。

    如果我们将新节点添加到列表的末尾,我们需要执行额外的工作来查找列表的末尾然后添加它。这是一种浪费的操作。但是,如果你维护另一个指针,让我们称它为尾指针,使其指向最后一个节点,这可以完成。

    下面我们介绍前一种方法,即如何在链表的开头插入节点。

    假设我们需要在链表中添加7,我们需要执行以下步骤:

    ● 创建一个节点对象,其中7表示数据,下一个节点指向头节点

    ● 将头指针指向此新节点

    最后,将size属性增加1,如果插入成功,返回True,这是一个好习惯;这样,用户就知道发生了什么。

    3、输出节点

    这是LinkedList类的方法。要打印链表中所有节点中的数据,我们需要一次遍历一个节点并打印每个节点的数据部分。

    实现代码:

    class Node:
       def __init__(self,data,nextNode=None):
           self.data = data
           self.nextNode = nextNode
       def getData(self):
           return self.data
       def setData(self,val):
           self.data = val
       def getNextNode(self):
           return self.nextNode
       def setNextNode(self,val):
           self.nextNode = val
    class LinkedList:
       def __init__(self,head = None):
           self.head = head
           self.size = 0
       def getSize(self):
           return self.size
       def addNode(self,data):
           newNode = Node(data,self.head)
           self.head = newNode
           self.size+=1
           return True
           
       def printNode(self):
           curr = self.head
           while curr:
               print(curr.data)
               curr = curr.getNextNode()
    myList = LinkedList()
    print("Inserting")
    print(myList.addNode(5))
    print(myList.addNode(15))
    print(myList.addNode(25))
    print("Printing")
    myList.printNode()
    print("Size")
    print(myList.getSize())

    单链表的优点和缺点是什么?

    优点:

    ● 它是一种动态数据结构,在这种结构中,插入和删除很简单,因为我们不需要移动元素。只需更新下一个指针就可以完成这项工作。

    ● 使用链表可以很容易地实现堆栈和队列数据结构。

    缺点

    ● 下一个指针占用了额外的内存。

    ● 无法随机访问。必须从头遍历链接列表才能到达特定节点。

    以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

    以上就是python单链表中如何插入和输出节点?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 单链表
    上一篇:Python如何将字符串常量转化为变量?(附示例) 下一篇:python单链表中如何查找和删除节点?
    千万级数据并发解决方案

    相关文章推荐

    • 使用PHP实现单链表• PHP实现单链表翻转操作示例讲解• php如何实现单链表头插法(代码实例)• 在python的开发过程中如何进行单链表的实现(代码)
    1/1

    PHP中文网