本文实例讲述了Python单链表简单实现代码。分享给大家供大家参考,具体如下:
用Python模拟一下单链表,比较简单,初学者可以参考参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
#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程序设计有所帮助。