Python数据结构之队列——链表创建队列
重点:链表可以不限制的添加数据。
代码
- 初始化
class Item:
def __init__(self, value):
self.data = value
self.next = None
front = None
rear = None
def create_queue():
global front
global rear
data_items = [105, 119, 163, 182, 174]
for item in data_items:
new_data = Item(item)
if rear is None:
front = new_data
else:
rear.next = new_data
rear = new_data
- 添加数据
def add_item(value):
global rear
global front
item_node = Item(value)
if rear.data is None:
front = item_node
else:
rear.next = item_node
rear = item_node
- 删除数据
def del_item():
global front
if front:
find_data = front.data
front = front.next
return find_data
else:
return None
- 判断是否为空队列
def is_empty():
if not front:
return True
else:
return False
- 展示所有数据
def show_data():
global front
ptr = front
while ptr:
print(ptr.data, end=" -> ")
ptr = ptr.next
print()
总结:全部代码
class Item:
def __init__(self, value):
self.data = value
self.next = None
front = None
rear = None
def create_queue():
global front
global rear
data_items = [105, 119, 163, 182, 174]
for item in data_items:
new_data = Item(item)
if rear is None:
front = new_data
else:
rear.next = new_data
rear = new_data
def add_item(value):
global rear
global front
item_node = Item(value)
if rear.data is None:
front = item_node
else:
rear.next = item_node
rear = item_node
def del_item():
global front
if front:
find_data = front.data
front = front.next
return find_data
else:
return None
def is_empty():
if not front:
return True
else:
return False
def show_data():
global front
ptr = front
while ptr:
print(ptr.data, end=" -> ")
ptr = ptr.next
print()
if __name__ == '__main__':
create_queue()
print("front.data: ", front.data, "\trear.data: ", rear.data)
print("添加前:", end="\t")
show_data()
add_item(200)
print("添加后:", end="\t")
show_data()
print("出队:", del_item())
print("出队:", del_item())
print("出队:", del_item())
print("出队:", del_item())
print("出队:", del_item())
print("出队:", del_item())
front.data: 105 rear.data: 174
添加前: 105 -> 119 -> 163 -> 182 -> 174 ->
添加后: 105 -> 119 -> 163 -> 182 -> 174 -> 200 ->
出队: 105
出队: 119
出队: 163
出队: 182
出队: 174
出队: 200
进程已结束,退出代码0