基本的棧
class stack逆波蘭表示式void push(char str)
char pop()
bool empty()
bool full()
void display()
}};
優點:不會發生記憶體溢位的問題
通過鍊錶操作頭結點就可以了
class linkstack需要乙個頭和尾,兩者相當於入隊時,rear++,出隊時front++,當front等於rear時,則表示為空.void push(int idata)
int pop()
bool isempty()
void test()
};
基本的佇列
class intqueue(1)為了防止隊滿的情況void enqueue(int idata)
int dequeue()
bool empty()
void test()
};
如1,2,3,4,5,maxsize=5,當插入元素6,則溢位,當用了環形佇列,那麼就變成了6,2,3,4,5(6替換了1)
rear=(rear+1)%stack_size;(2)在出對時判斷是否隊為空
(3)在入隊時判斷是否隊滿
改進後的**
class intqueuevoid enqueue(int idata)
int dequeue()
bool empty()
bool isfull()
void test()
};
用雙端鍊錶實現,每次插入都是插入尾結點,刪除則是刪除頭結點
class linkqueuevoid enqueue(int idata)
int dequeue()
bool isempty()
void test()
};
順序棧 鏈棧 順序隊和鏈隊小結
順序棧和順序隊的儲存結構都為順序儲存,鏈棧和鏈隊的儲存結構為鏈式儲存。順序棧和順序隊為受約束的順序表 可以看成與陣列類似 鏈棧和鏈隊和單鏈表沒有什麼區別。如何寫出這些相應的程式 呢?本人認為有以下幾點 1 清楚順序棧 順序隊 鏈棧和鏈隊的結構及其基本性質,如 隊列為 先進先出 棧為 先進後出 棧需要...
棧和隊的實現8 鏈隊
include pch.h include using namespace std typedef int qelemtype 資料型別 typedef struct qnode qnode,queueptr 結點型別 typedef struct linkqueue 結點指標型別 1.初始化 bo...
2個鏈棧實現鏈隊功能
2chainstack chainqueue.cpp 定義控制台應用程式的入口點。兩個鏈棧實現乙個鏈隊功能 include stdafx.h include typedef int type using namespace std 鏈棧結點 typedef struct stack stack,ps...