学习如何在Python中实现单向链表。探索使用Python代码示例的数据结构和算法分析基础知识。
Python 实现单向链表详细教程
在计算机科学中,单向链表是一种基本的数据结构,用于存储元素集合。每个节点包含一个数据元素和指向下一个节点的引用(链接)。让我们深入了解如何使用Python实现单向链表。文章来源:https://www.toymoban.com/diary/python/722.html
示例代码
class Node: def __init__(self, elem): """ 初始化具有元素值和下一个节点引用的节点。 :param elem: 节点的元素值 """ self.elem = elem self.next = None class SingleLinkList: """ 单向链表由节点组成,每个节点包含一个元素和指向下一个节点的链接。 """ def __init__(self, node=None): self.__head = node def is_empty(self): """ 检查链表是否为空 """ return self.__head is None def length(self): """ 返回链表的长度 """ cur = self.__head count = 0 while cur is not None: count += 1 cur = cur.next return count def travel(self): """ 遍历链表 """ cur = self.__head while cur is not None: print(cur.elem, end=' ') cur = cur.next def add(self, item): """ 在链表开头添加元素(头部插入) """ node = Node(item) node.next = self.__head self.__head = node def append(self, item): """ 在链表末尾添加元素(尾部插入) """ node = Node(item) if self.is_empty(): self.__head = node else: cur = self.__head while cur.next is not None: cur = cur.next cur.next = node def insert(self, pos, item): """ 在特定位置插入元素 """ if pos <= 0: self.add(item) elif pos > (self.length() - 1): self.append(item) else: pre = self.__head count = 0 while count < (pos - 1): count += 1 pre = pre.next node = Node(item) node.next = pre.next pre.next = node def remove(self, item): """ 从链表中删除元素 """ cur = self.__head pre = None while cur is not None: if cur.elem == item: if cur == self.__head: self.__head = cur.next else: pre.next = cur.next break else: pre = cur cur = cur.next def search(self, item): """ 查找具有特定元素的节点 """ cur = self.__head while cur is not None: if cur.elem == item: return True else: cur = cur.next return False if __name__ == '__main__': ll = SingleLinkList() ll.is_empty() ll.append(55) ll.is_empty() ll.append(2) ll.add(8) ll.append(3) ll.append(4) ll.append(5) ll.insert(-1, 9) ll.insert(2, 100) ll.travel()
文章来源地址https://www.toymoban.com/diary/python/722.html
到此这篇关于Python数据结构与算法分析:实现单向链表的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!