雙佇列模擬棧的基本操作
#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...