栈队列问题---求退队元素顺序

问题描述

栈队列问题---求退队元素顺序

设有栈S和队列Q,初始状态均为空,首先依次将ABCDEF入栈,然后从栈中退出三个元素依次入队,再将XYZ入栈后将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为??
-------参考答案是DEFXYZABC,这个答案有问题吗?求大侠指点

解决方案

答案应该有问题。
首先S=ABCDEF,第二步:S=ABC,Q=FED,第三部:S=ABCXYZ,Q=FED,第四部:Q=FEDZYXCBA。
退队的顺序即为最后队列的顺序FEDZYXCBA。

解决方案二:

列下每步的状态

S=ABCDEF,Q=
S=ABC,Q=FED
S=ABCXYZ,Q=FED
S=,Q=FEDZYXCBA

所以结果是FEDZYXCBA

时间: 2025-01-29 23:02:31

栈队列问题---求退队元素顺序的相关文章

只有一个指针指向队尾元素的循环链表表示的队列怎么求长度

问题描述 只有一个指针指向队尾元素的循环链表表示的队列怎么求长度 创建一个带头节点的循环链表表示的队列,并且只有一个指针指向队尾元素 解决方案 先保存当前的节点,然后循环调next,并计数,直到next等于保存的那个

java 集合 Connection 栈 队列 及一些常用

集合家族图 ---|Collection: 单列集合            ---|List: 有存储顺序, 可重复               ---|ArrayList:    数组实现, 查找快, 增删慢                                        ---|LinkedList:   链表实现, 增删快, 查找慢  实现了 栈 队列                                      ---|Vector:   和ArrayList原

求数组元素的全排列,数组不含重复元素

Permutations Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the following permutations:     [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1]. 求数组元素的全排列,数组不含重复元素 算法1:递归 类似于DFS的递归. 对于包含n个元素的数组,先确定第一位置

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

数组唯一key-2个数组元素顺序不同,认为是同一个数组

问题描述 2个数组元素顺序不同,认为是同一个数组 有2个数组比如[1,2,3,4]和[4,3,2,1],仅仅排序不同,有什么快速的算法认为是同一个数组? 或者数组元素能算出key,而此key和元素顺序无关. 求Java实现 解决方案 对它排序,然后比较,或者对数组求和,得到hash,如果和相同虽然不一定数组相同,但是和不同,一定不同,所以可以进一步筛选. 解决方案二: 如果数组没有重复,放到set中,然后直接比较set,就OK了 解决方案三: 要判断两个数组相同,而且还要考虑的数组元素是无序,最

javascript-怎么动态增加元素顺序?

问题描述 怎么动态增加元素顺序? <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>JQuery Test</title> <script src="../behappy/jquery-2.1.4.min.js" charset="utf-8&q

c语言-一个未满的整型数组,怎么求真实元素个数?

问题描述 一个未满的整型数组,怎么求真实元素个数? 比如一个整型数组:int a[10]; 这个数组没有存放满10个数.我怎么知道其中的数据元素个数? 解决方案 基本上不可能知道. 如果你一定想知道,可以试试给数组赋一个不会用到的初值,如:0xFFFFFFFF,或者 零. 然后对数组进行循环统计,看看哪些下标不再是初值,就是实际的元素.然后,统计一下个数即可. 解决方案二: 数组长度声明后每个元素有默认初始值,为0,没有所谓的存满吧(刚刚学习不知道对不对C#).如果你知道你的赋值都不为0,可以通

求主元素的 算法 怎么写时间运行比较快

问题描述 求主元素的 算法 怎么写时间运行比较快 求一组数据 (整数)中元素出现的个数大于n/2次的那个元素 我一个个去找,找到的话计数器加1,等到计数器大于n/2的时候把那个数输出 不过时间超时了 有没有好的算法 解决方案 n是什么?数组长度?这个算法的算法复杂度就是O(n),起码你要遍历一次. 超时的话,只能在代码层面优化,比如你的数据结构.怎么判断累加的.用多线程加速.

c++ 链栈 出错-c++链栈问题,求大神,大一无力啊

问题描述 c++链栈问题,求大神,大一无力啊 程序运行的时候出错,自己弄了好久不知道怎么办,百度了也不行#include #include using namespace std; enum error_code{success,underflow,overflow}; //定义枚举 char opr[]={'+','-','*','/','(',')','#'}; struct node{ char data0; int data1; node *next; }; int comp[7][7]