编写一个C++算法使元素倒置

已知Q是一个非空队列,S是一个空栈。仅用队列和栈的ADT函数和一个成员变量X编写一个算法,使得Q中的元素倒置,请高手帮帮忙
需要用上面的条件怎么写啊
我们在学习算法结构

n个元素,1和n互换,2和n-1互换,3和n-2互换,以此类推即可完成,时间复杂度优于上面提出的方案。不过不利用你给的条件。
void reverse(int a[], int n)
{
int i,j,tmp;
for(i=0, j=n-1; i<j; i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-29
先依次将元素出队,并同时将出队的元素依次入栈;
再依次将栈中的元素出栈,并同时将出栈的元素依次入队,
这样就可以将队列Q中的元素倒置了.
第2个回答  2007-10-29
额。。太难了点吧?

编写一个C++算法使元素倒置
n个元素,1和n互换,2和n-1互换,3和n-2互换,以此类推即可完成,时间复杂度优于上面提出的方案。不过不利用你给的条件。void reverse(int a[], int n){ int i,j,tmp;for(i=0, j=n-1; i<j; i++,j--){ tmp=a[i];a[i]=a[j];a[j]=tmp;} } ...

使用C++,把栈中元素逆置,要求使用额外的一个栈,外加一些非数组的变量...
2.S.pop()栈顶元素赋值给A,再把S中剩下的依次pop后push入T;3.再把A push入空的S;4.然后把T中的所有元素依次pop后push回S,此时实现了栈S一开始的顶元素到栈底;5.接下来重复第二步,不过剩下个栈底别pop(你懂的),然后再重复34步,实现倒置两个元素;6,7,8...重复第五步,pop...

c++ STL反转算法:reverse()、reverse_copy()详解
在C++的STL库中,反转算法主要通过两个函数实现:reverse函数模板与reverse_copy函数模板。reverse函数模板的操作流程如下:它需要两个双向迭代器作为源序列的边界。在内部循环中,它调用swap函数以交换源序列中的元素位置。当所有元素都交换完成后,源序列被反转。reverse函数模板的示例:对于一个包含5个元素...

关于C++的一道题,编写函数reverse(char *s),用递归算法使字符串倒序...
p=sreverse(a,0,strlen(a)-1);cout <<"逆序后为:"<<p<<endl;}

用C++ 输入一个整数如123然后倒着输出 321
i = n % 10; n = n - i; n \/= 10; an *= 10; an += i; } printf("%d", an); }这个涉及到一点点算法了。 你要把程序的要解决的问题的逻辑步骤搞清楚 哦可以跟着我的程序走一遍你就会明白了。

...在一个数组A【m】的前n个数组单元中,编写一个算法将这个线性表原地逆...
用到模板 C++程序 程序如下:template<class type> void inverse(type a[],int n){ type t;for(int i=0;i<=(n-1)\/2;i++){t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;} } 你就少了个模板,这个程序的算法思想是正确的。

如何设计一个算法,通过一趟遍历将链表中所有结点的链接方向逆转,且仍...
以下是一个算法,可以通过一趟遍历将链表中所有结点的链接方向逆转,且仍利用原表的存储空间:```c++void reverse(Linklist& L) { Linklist q,p=L->next;\/\/p为图中1结点 L -> next = NULL;\/\/对应图中1结点后继置空 while (p) { q = p->next;\/\/q为p后一结点,和p同样会...

C++题目: 写一个函数将一个3*3的整型矩阵转置。
1、首先在编辑器中准备好一个空白的c语言文件,引入C语言标准库,在main函数中定义一个3x3阶矩阵以及循环体中要用的变量i和j,以及一个用来交换数据的临时变量tmp,然后下一步就可以开始编写处理转置的部分了:2、二维数组需要用两层循环输出,而算法是将一个3x3阶矩阵转置时,只需将主对角线右上方的...

C++编写倒置的杨辉三角,用C++
return 1; } for(int i = len; i >= 1 ; i--) { for(int j = 0; j < i; j++ ) { cout << getYanghui(i,j) << " "; } cout << endl; } return 0;}\/\/虽然算法差了点,但也可以实现\/\/下面这个版本速度会快很多\/\/算法没修改过,只是加了个缓存#include <iostream>#include <cstdli...

求一个用C++写的Delaunay三角剖分间接实现Voronoi图的代码。最好有算 ...
print(s,s[i][j]+1,j);cout<<"三角行:v"<<i-1<<"v"<<s[i][j]<<"v"<<j<<endl;} int main(){ int n,i;Point v[N]={0,0};point triangle;int t[N][N],s[N][N];cout<<"输入多边形的顶点数:";cin>>n;for(i=0;i<n;i++){ cout<<"输入第"<<i+1<<"点...

相似回答
大家正在搜