都用的標頭檔案形式
棧的模板形式
#ifndef _mystack_h
#define _mystack_h
// 棧
template struct node
;template struct stack
;template void initstack(stack* s)
template bool isstackempty(stack* s)
template void push(stack* s, t data)
template t pop(stack* s)
template void reset(stack* s)
}template void clear(stack* s)
#endif
佇列的模板形式
#ifndef _myqueue_h
#define _myqueue_h
// 佇列
template struct qnode
;template struct queue
;template void initqueue(queue* q)
template bool isqueueempty(queue* q)
template void enqueue(queue* q, t ch)else
}template t dequeue(queue* q)else
}template void clearqueue(queue* q)
qnode* p = q->front->next;
q->rear = q->front;
q->front->next = null;
qnode*t;
while(p)
t = q->front;
q->front = q->rear = null;
free(t);
/*// clear是把不帶頭節點佇列內的元素完全刪除掉,回歸到initqueue後的狀態
qnode* t;
while(q->front)
*/}#endif
僅供參考 模板引數和模板的模板引數實現棧和佇列
include using namespace std 利用順序表實現棧 if 0 template class stack stack const t arr,size t sz ptr new t sz capacity sz size sz 元素入棧 void push t data 元素出棧...
棧和佇列(模板)
陣列模擬棧 include using namespace std const int n 100010 int stk n tt 插入 stk tt x 彈出 tt 判斷棧是否為空 if tt 0 not empty else is empty 棧頂 stk tt 陣列模擬佇列 include u...
棧和佇列的模擬模板
棧 模板題 acwing 828.模擬棧 實現乙個棧,棧初始為空,支援四種操作 1 push x 向棧頂插入乙個數x 2 pop 從棧頂彈出乙個數 3 empty 判斷棧是否為空 4 query 查詢棧頂元素。現在要對棧進行m個操作,其中的每個操作3和操作4都要輸出相應的結果。輸入格式 第一行包含整...