用佇列將棧中元素逆置

2021-08-26 18:19:22 字數 2011 閱讀 1761

程式設計實現利用佇列將棧中元素逆置的演算法。

void inverse(stack *s,queue *q)

while(!isempty(q))

}

#include#include#define true 1

#define false 0

#define n 100

typedef int bool;

typedef int elemtype;

typedef structstack;

/*void create1(stack *s, int msize);

bool isempty1(stack *s);

bool isfull1(stack *s);

bool top(stack *s,elemtype *x);

bool push(stack *s,elemtype x);

bool pop(stack *s);

void create2(queue *q,int msize);

bool isempty2(queue *q);

bool isfull2(queue *q);

bool front2(queue *q,elemtype *x);

bool dequeue(queue *q);

void output(stack *s,int n);

int inverse(stack *s,queue *q,int n);

*/void create1(stack *s, int msize)

bool isempty(stack *s)

bool isfull1(stack *s)

bool top(stack *s,elemtype *x)

bool push(stack *s,elemtype x)

bool pop(stack *s)

typedef structqueue;

void create2(queue *q,int msize)

bool isempty(queue *q)

bool isfull2(queue *q)

bool front(queue *q,elemtype *x)

bool enqueue(queue *q,elemtype x)

bool dequeue(queue *q)

q->front=(q->front+1)%q->maxsize;

return true;}/*

void output(stack *s,int n)

while(s->top!=-1)

printf("\n");}*/

void printstack(stack *s)

}else printf("the stack is empty\n");}/*

int inverse(stack *s,queue *q,int n)

for(i=0;ielement[q->front+1%q->maxsize];

push(s,a[i]);

dequeue(q);

}}*/

void inverse(stack *s,queue *q)

while(!isempty(q))

}int main(){

int n,i,x;

stack s;

queue q;

scanf("%d",&n);

// printf("\n");

create1(&s,n);

create2(&q,n+1); // 防止出現空佇列,滿佇列的情況

for(i=0;i將 2 3 1 5 4 依次入棧,然後利用佇列進行逆置,最後輸出新棧的元素,是從 top 開始列印的。

顛倒棧中元素 棧的逆置

思路 1.使用遞迴pop出棧中元素,直到棧中元素只剩下乙個元素 2.當前第一次遞迴返回的時候,棧中有2個元素,我們再利用另乙個遞迴函式putitem把兩個元素逆置 3.以此遞迴下去,直到棧中元素全部逆置。過程如下 1 1 2,3,4 第乙個遞迴不斷出棧,第一次滿足返回條件時,棧中元素只有 1 2 回...

佇列元素逆置演算法

1.題目 使用乙個棧 乙個佇列,實現佇列中元素逆置的演算法 2.利用佇列先進先出,棧先進後出的特性,實現佇列元素的逆置 3.原始碼 1.題目 使用乙個棧 乙個佇列,實現佇列中元素逆置的演算法 include define maxsize 1000 typedef structqueue typede...

資料結構習題 用雙佇列模擬棧及用棧逆置佇列

雙佇列模擬棧的基本操作 include include define maxsize 30 typedef int datatype typedef structseqqueue 置空棧 void initial seqqueue q1,seqqueue q2 int queueisempty se...