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

python单链表中如何插入和输出节点?下面本篇文章就来带大家了解一下单链表是什么,如何对单链表执行的一些非常基本的操作,例如:插入、输出,希望对大家有所帮助。

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

单链表是什么?

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

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

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

立即学习“Python免费学习笔记(深入)”;

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 = valclass 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())

登录后复制

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

优点:

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

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

缺点

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2533642.html

(0)
上一篇 2025年3月5日 21:17:49
下一篇 2025年3月5日 21:17:55

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么找到黑客的联系方式?

    如果你想要找到黑客的联系方式,那么你可能面临以下难题:黑客往往会隐藏他们的身份,并且他们的联系方式很难被发现。php小编草莓在这里为你提供了一份指南,旨在帮助你找到黑客的联系方式。在本指南中,我们将介绍一些常见的黑客使用的联系方式,并提供一…

    2025年3月5日
    200
  • Python如何将字符串常量转化为变量?(附示例)

    本篇文章给大家带来的内容是关于python如何将字符串常量转化为变量?(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 本文将相关的内容要点作了梳理,并由此引申到更进一步的学习话题,希望对你有所帮助。 1、如何动态…

    编程技术 2025年3月5日
    000
  • python单链表中如何查找和删除节点?

    在之前的文章【python单链表中如何插入和输出节点?】中给大家介绍了单链表是什么,以及如何进行添加节点、输出所以节点。下面本篇文章给大家介绍如何查找和删除节点,希望对大家有所帮助。 如何从单链表中查找节点? 与大多数数据结构一样,查找元素…

    2025年3月5日
    200
  • 如何使用Python中range()方法?

    python中有很多迭代器,比如list、tuple等,range()提供了另一种方法来使用一些条件初始化数字序列。(相关推荐:《python教程》) range()通常用于循环,因此,在处理任何类型的Python代码时,相同的知识是关键方…

    2025年3月5日
    200
  • Python动态定义函数的方法介绍

    本篇文章给大家带来的内容是关于Python动态定义函数的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 基于 MIT 许可协议 在 Python 中,没有可以在运行时简化函数定义的语法糖。然而,这并不意味着它就不可…

    编程技术 2025年3月5日
    200
  • Python如何初始化列表?

    python是一种非常灵活的语言,可以通过多种方式执行单个任务,例如,可以通过多种方式执行初始化列表。下面本篇文章就来带大家了解几种python初始化的方法,并比较一下这几种方法的效率,希望对大家有所帮助。 下面我们就来介绍在Python中…

    2025年3月5日
    200
  • Python列表如何统计元素的出现频率?(代码示例)

    有时我们需要在列表中查找、统计列表中特定元素出现的数量(频率),那么如何去统计?下面本篇文章就来带大家了解一下在python中统计列表元素出现频率的方法,希望对大家有所帮助。 方法一:使用Counter() + set()+ 列表推导(Li…

    2025年3月5日
    200
  • Python如何删除除字母和数字之外的所有字符?(代码示例)

    字符串操作是日常编码和web开发中非常重要的任务;例如:http查询中的大多数请求和响应都是字符串形式,有时我们需要删除一些无用的数据。下面本篇文章就来给大家介绍一些python方法来将指定字符串中除字母和数字之外的所有字符都删除,希望对大…

    2025年3月5日
    200
  • Python实现给照片换底色(附代码)

    本篇文章给大家带来的内容是关于Python实现给照片换底色(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 现在网上出现了很多在线换底色的网页版工具是这么做的呢?其实用Python就可以实现。 环境要求 Pytho…

    2025年3月5日
    200
  • Python中is 和 ==的详细解析(附代码)

    本篇文章给大家带来的内容是关于python中is 和 ==的详细解析(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在Python中一切都是对象。 Python中对象包含的三个基本要素,分别是: id(身份标识)…

    编程技术 2025年3月5日
    200

发表回复

登录后才能评论