c++教程 栈和队列的主要区?
浏览量:1739
时间:2021-04-12 10:53:42
作者:admin
栈和队列的主要区?
Stack是一个线性表,只能在表的一端插入和删除。
队列是一个线性表,只能在表的一端插入,在另一端删除。堆栈和队列是存储在特定存储单元范围内的数据,可以检索这些数据以供使用。不同的是,栈就像一个很窄的桶,先存储的数据最后只能取出,队列不同,即“先入后出”。排队有点像人们排队买东西的“排队”。排在第一排的人先买,排在第二排的人后买,即“先进先出”。有时,在数据结构中,可能存在根据大小或特定条件排队的数据队列。此时,队列属于特殊队列,不需要按照“先进先出”的原则读取数据。
栈和队列的存储方式?
4. 实现思想
(1)使用了两个栈a和B,其中a负责push操作,B负责pop操作。使用变量backElement存储最后添加的元素。
(2)执行队列的推送操作。每次添加时,都会相应地将元素添加到堆栈中。并返回元素赋值
](3)执行队列的pop操作,每次删除,因为栈B负责pop操作,首先确定栈B是否为空?
a.如果B为空,判断a是否为空?
如果a也为空,则输出错误消息,并且队列为空。
如果a不为空,堆栈a中的所有数据都存储在堆栈B中。执行B.push(a.top()),a.pop()。然后对堆栈B执行B.pop()操作,删除队列的头元素
B.如果B不是空的,直接对B执行B.pop()操作
例如,对a,B,C执行push操作,然后执行pop操作
(4)执行队列的front()操作。该方法与pop操作相同,只是在最后一步中使用b.top()返回值。
(5)实现队列的back()操作,因为我们使用变量back Elem保存最后的输入数据,所以它直接返回。
(6)要实现队列的size()和empty()操作,分别对a和B执行操作。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。