数据结构第三章栈和队列,阐述栈与队列数据结构的概念及其特点
Yyds干货库存
1.栈栈概述栈,有的地方叫stack,是一种可以存储数据元素、访问元素、删除元素的容器。它的特点是只能在容器的一端允许添加数据(英文:push)和输出数据(英文:pop)的操作(称为栈顶索引,英文:top)。没有位置的概念,可以随时访问和删除的元素就是之前存储的最后一个元素,确定一个默认的访问顺序。
由于栈数据结构只允许一端操作,所以按照后进先出的原则操作)。
二。栈结构的实现栈可以通过顺序表或者链表来实现。
2.1栈操作Stack()创建一个新的空栈push(item)向栈顶添加一个新项pop()弹出栈顶元素peek()返回栈顶元素is_empty()确定栈是否为空size()返回栈中元素的个数2.2相关实现类Stack(object):
堆栈
def __init__(self):
self.items=[]
定义为空(自身):
确定它是否为空
return self.items==[]
定义推送(自身,项目):
添加元素
self.items.append(项目)
定义弹出(自身):
弹出元素
返回self.items.pop()
定义窥视(自身):
返回堆栈的顶部元素
return self . items[len(self . items)-1]
定义大小(自身):
返回堆栈的大小
归还贷款(自有项目)
if __name__==__main__ :
stack=Stack()
stack.push(hello )
stack.push(world )
stack.push(itcast )
print stack.size()
print stack.peek()
print stack.pop()
print stack.pop()
Print.pop () III。队列概述队列是一个线性表,只允许一端插入,另一端删除。
队列是一种先进先出的线性表,简称FIFO。允许插入的末端是队列的末端,允许删除的末端是队列的头部。队列中间不允许操作!假设队列是q=(a1,a2,…,…,an),那么a1是队列的头元素,an是尾元素。这样,我们在删除的时候总是可以从a1开始,在插入的时候总是可以在队列中结束。这也符合我们平时的习惯。第一个在前,最后一个在后。
第四,队列的实现和栈一样,队列也可以用序列表或者链表来实现。
4.1 Queue()的相关操作与实现创建一个空队列enqueue(item)向队列中添加一个item元素dequeue()从队列头删除一个元素is_empty()判断一个队列是否为空size()返回队列的大小class Queue(object):
队列
def __init__(self):
self.items=[]
定义为空(自身):
return self.items==[]
定义排队(自身,项目):
进入队列
self.items.insert(0,item)
定义出列(自身):
不在队列中
返回self.items.pop()
定义大小(自身):
返回大小
归还贷款(自有项目)
if __name__==__main__ :
q=队列()
排队(你好)
q.enqueue(world )
q.enqueue(itcast )
打印q.size()
打印q.dequeue()
打印q.dequeue()
print q . dequeue()v . dequee dequee(dequee,全称双端队列)是一种具有队列和堆栈性质的数据结构。
deque中的元素可以从两端弹出,这限制了表两端的插入和删除操作。Deque可以在队列的任意一端加入和离开队列。
5.1 dequee的相关操作及实现()创建一个空的dequee Add _ front(item)从队列头添加一个item元素add_rear(item)从队列尾添加一个item元素remove_front()从队列头删除一个item元素remove_rear()从队列尾删除一个item元素is_empty()判断dequee是否为空size()返回队列的大小ClassDede
德克
def __init__(self):
self.items=[]
定义为空(自身):
确定队列是否为空
return self.items==[]
def add_front(自身,项目):
“在队列的开头添加元素”
self.items.insert(0,item)
def add_rear(自身,项目):
“在队列末尾添加元素”
self.items.append(项目)
def remove_front(自身):
从队列头删除元素“”。
返回self.items.pop(0)
def remove_rear(自身):
从队尾删除元素
返回self.items.pop()
定义大小(自身):
返回队列大小
归还贷款(自有项目)
if __name__==__main__ :
deque=Deque()
deque.add_front(1)
deque.add_front(2)
deque.add_rear(3)
deque.add_rear(4)
print deque.size()
print deque.remove_front()
print deque.remove_front()
print deque.remove_rear()
print deque.remove_rear()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。