数据结构第三章栈和队列,阐述栈与队列数据结构的概念及其特点

  数据结构第三章栈和队列,阐述栈与队列数据结构的概念及其特点

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • 留言与评论(共有 条评论)
       
    验证码: