技术原理

如何在Python中实现链表?

Python编程语言是一种开源语言,具有各种现成的实现,使其独特且易于学习。尽管Python不支持链表的概念,但是有一种方法可以通过不同的实现来获取链表。在本文中,我们将学习如何在Python中创建一个链表。以下是本博客的主题:

什么是链表?实现链表

的链表方法让我们开始

“什么是链表?”

“链接列表是具有相似数据类型的节点序列,每个节点包含一个数据对象和指向下一个节点的指针。”

链接列表是具有多个节点集合的线性数据结构。其中每个元素存储自己的数据和指向下一个元素位置的指针。链接列表中的最后一个链接指向空,表示链的结束。链表中的元素称为节点。第一个节点叫做头部,最后一个节点叫做尾部。”linked list - linked list in python - edureka“标准python库没有链接列表。我们可以通过使用节点的概念来实现链表数据结构的概念。

现在我们已经了解了链接的内容。接下来我们来实现一个链表。

实现一个链表

来创建一个链表,我们创建一个节点对象并创建另一个类来使用这个节点对象。创建节点类的代码。上面的程序创建了一个包含三个数据元素的链表。

#初始化类变量的构造函数self.data=数据#获取数据返回self.data下一步(自我):返回self.next_节点def set_next(self,new_next):self.next_node=新建下一个链接列表的

实现由链接列表1中的以下功能组成。插入:此方法将在链接列表中插入新节点。2。大小:此方法将返回链接列表的大小。三。搜索:此方法将返回包含数据的节点,否则将引发错误4。Delete:此方法将删除包含数据的节点,否则将引发错误

让我们看到链接列表中的方法

Init method类LinkedList(对象):self.head=头部

Init方法用于初始化类变量,如果列表没有节点,则将其设置为none。

Insert:

def insert(self,数据):新建节点。设置下一个(self.head)self.head=新节点

这个insert方法接受数据,用给定的数据初始化一个新节点,并将其添加到列表中。从技术上讲,您可以在列表中的任何位置插入节点,但最简单的方法是将其放在列表的开头,并将新节点指向旧的开头(类似于将其他节点推下线)。

Size

#返回列表中节点的总数电流=自身水头计数=0计数 =1返回计数

size方法非常简单,它基本上计算节点数,直到找不到为止,并返回找到的节点数。该方法从头节点开始,沿着节点行向下移动,直到到达终点(当到达终点时,当前将为无),同时跟踪它看到的节点数。

搜索

定义搜索(self,nodeData):电流=自身水头isPresent=错误如果current.get_data()==节点数据:isPresent=真当前=当前。获取下一个()如果电流为无:raise ValueError(“数据不在列表中”)

搜索实际上与size非常相似,但它不是遍历整个节点列表,而是在每个站点检查当前节点是否有请求的数据。如果是,则返回保存该数据的节点。如果方法遍历整个列表,但仍然没有找到数据,则会引发值错误,并通知用户数据不在列表中。

删除

#如果节点不存在,则从链接列表中删除该节点将返回错误def删除(self,nodeData):上一个=无isPresent=错误如果current.get_data()==节点数据:其他:前一个=当前电流=当前.获取下一个()如果电流为无:raise ValueError(“数据不在列表中”)self.head=当前。获取下一个()其他:上一个.set_下一个(当前.获取下一个())

delete方法以与search相同的方式遍历列表,但是除了跟踪当前节点之外,delete方法还记住访问的最后一个节点。当delete最终到达它想要删除的节点时。它只是通过“跳过”该节点来将该节点从链中移除。

我的意思是,当delete方法到达它要删除的节点时,它会查看它访问的最后一个节点(“previous”节点)并重置该前一个节点的指针。而不是指向即将删除的节点。

它将指向行中的下一个节点。由于没有节点指向要删除的差节点,因此该节点将有效地从列表中删除!”

这将我们带到本文的末尾,在这里我们学习了如何使用类似的实现在python中创建链表,即使python并不真正支持链表的概念。我希望您对本教程中与您共享的所有内容都很清楚。

如果您在“Python中的链接列表”上找到了相关的文章,请查看Edureka Python认证培训。我们是一家值得信赖的在线学习公司,拥有遍布全球的250000多名满意的学习者。

我们在这里为您的旅程中的每一步提供帮助,并为希望成为Python开发人员的学生和专业人士设计课程。本课程的目的是让您在Python编程方面有一个良好的开端,并为您提供核心和高级Python概念以及各种Python框架(如Django)的培训。

如果您遇到任何问题,请随时在“Python中的链表”的“注释”部分提出您的所有问题,我们的团队将很高兴回答。

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能的利弊议论文 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录