单向链表
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向nuLL的指针。
链表的特点
1 单个结点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小
2 结点的删除非常方便,不需要像线性结构那样移动剩下的数据
3 结点的访问方便,可以通过循环或者递归的方法访问到任意数据,但是平均的访问效率低于线性表
实现链表
能实现链表的语言有很多,这里我们使用Python语言来实现,不多说了,直接上代码:
[Python] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
class Node( object ):
"""节点"""
def __init__( self , data):
# 数据域
self .data = data
# 引用域
self . next = None
class SingleLinkList( object ):
"""单向链表"""
def __init__( self ):
self .__head = None
def is_empty( self ):
"""判断链表是否为空"""
if self .__head = = None :
return True
else :
return False
def add( self , data):
"""链表头部添加元素"""
node = Node(data)
node. next = self .__head
self .__head = node
|