首页 > 编程 > Python > 正文

Python单链表简单实现代码

2020-01-04 17:30:52
字体:
来源:转载
供稿:网友
这篇文章主要介绍了Python单链表简单实现代码,结合实例形式分析了Python单链表的具体定义与功能实现技巧,需要的朋友可以参考下
 

本文实例讲述了Python单链表简单实现代码。分享给大家供大家参考,具体如下:

用Python模拟一下单链表,比较简单,初学者可以参考参考

#coding:utf-8class Node(object):  def __init__(self, data):    self.data = data    self.next = Noneclass 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 casen1 = 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 datanode_list.show()

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表