本文实例讲述了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程序设计有所帮助。