这篇文章主要介绍了Python单链表简单实现代码,结合实例形式分析了Python单链表的具体定义与功能实现技巧,需要的朋友可以参考下
本文实例讲述了Python单链表简单实现代码。分享给大家供大家参考,具体如下:
用Python模拟一下单链表,比较简单,初学者可以参考参考
#coding:utf-8 class Node(object): def __init__(self, data): self.data = data self.next = None class NodeList(object): def __init__(self, node): self.head = node self.head.next = None self.end = self.head def add_node(self, node): self.end.next = node self.end = self.end.next def length(self): node = self.head count = 1 while node.next is not None: count += 1 node = node.next return count # delete node and return it's value def delete_node(self, index): if index+1 > self.length(): raise IndexError('index out of bounds') i = 0 node = self.head while True: if i==index-1: break node = node.next i += 1 tmp_node = node.next node.next = node.next.next return tmp_node.data def show(self): node = self.head node_str = '' while node is not None: if node.next is not None: node_str += str(node.data) + '->' else: node_str += str(node.data) node = node.next print node_str # Modify the original position value and return the old value def change(self, index, data): if index+1 > self.length(): raise IndexError('index out of bounds') i = 0 node = self.head while True: if i == index: break node = node.next i += 1 tmp_data = node.data node.data = data return tmp_data # To find the location of index value def find(self, index): if index+1 > self.length(): raise IndexError('index out of bounds') i = 0 node = self.head while True: if i == index: break node = node.next i += 1 return node.data #test case n1 = Node(0) n2 = Node(1) n3 = Node(2) n4 = Node(3) n5 = Node(4) node_list = NodeList(n1) node_list.add_node(n2) node_list.add_node(n3) node_list.add_node(n4) node_list.add_node(n5) #node = node_list.delete_node(3) #print node #d = node_list.change(0,88) data = node_list.find(5) print data node_list.show()
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。