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

2022-05-04 14:24:12 字數 1549 閱讀 8511

雙佇列模擬棧的基本操作

#include#include#define maxsize 30

typedef int datatype;

typedef structseqqueue;

//置空棧

void initial(seqqueue *q1,seqqueue *q2)

int queueisempty(seqqueue *q)

int queueisfull(seqqueue *q)

int enqueue(seqqueue *q,datatype x)

int dequeue(seqqueue *q,datatype *x)

//判斷棧空

int stackisempty(seqqueue *q1,seqqueue *q2)

//判斷棧滿

int stackisfull(seqqueue *q1,seqqueue *q2)

//進棧

int stackpush(seqqueue *q1,seqqueue *q2,datatype x)

//出棧

int stackpop(seqqueue *q1,seqqueue *q2,datatype *x)

} else //若q1為空

while(!queueisempty(q2))

return 1;

}

用棧逆置佇列

#include#include#define maxsize  30

typedef int datatype;

typedef structseqstack;

typedef structseqqueue;

//初始化棧和佇列

void initial(seqstack *s,seqqueue *q)

//判斷隊滿

int queuefull(seqqueue *q)

//判斷隊空

int queueempty(seqqueue *q)

//出隊

int dequeue(seqqueue *q,datatype *x)

//進隊

int enqueue(seqqueue *q,datatype x)

//判斷棧滿

int isfull(seqstack *s)

//判斷棧空

int isempty(seqstack *s)

//進棧

int push(seqstack *s,datatype x)

//出棧

int pop(seqstack *s,datatype *x)

//佇列逆置

void reverse(seqstack *s,seqqueue *q)

while(!isempty(s))

}int main()

reverse(s,q);

while(!queueempty(q))

}

用棧模擬佇列和佇列模擬棧

棧 先進後出 filo 佇列 先進先出 fifo class myqueue 兩棧模擬佇列 def init self self.input self.output 進佇列 defpush self,x 出佇列 defpop self self.peek return self.output.pop...

資料結構 用佇列實現棧 C

棧實現佇列功能 include include include include using namespace std 結點 class mydata 預設建構函式 mydata int value data value next null 帶引數建構函式 int data mydata next ...

王道資料結構3 2 5 3 用兩個棧模擬佇列

分為棧s1和s2,每次入隊前,先檢查s1是否滿了,滿了還得保證s2為空,這樣才能全部放入s2中再入棧。每次出隊前,檢查s2是否為空,若空,則從s1全部放入,再出棧。隊滿的情況就是s1和s2都滿了,隊空的情況就是s1和s2都空了。int enqueue stack s1,stack s2,elemty...