棧的定義:棧是一種只允許在一端進行插入或者刪除的線性表(後進先出的線性表)
棧頂:棧中允許插入和刪除的一端
棧底:固定的
空棧棧的順序表示
#define maxsize 50
typedef struct sqstack;
void initstack(sqstack &s)
bool stackempty(sqstack s)
bool push(sqstack &s,elemtype x)
bool pop(sqstack &s,elemtype x)
bool gettop(sqstack s,elemtype x)
在棧頂指標指向棧頂元素時棧的鏈式儲存型別在入棧的時候,指標先加一,然後資料入棧
在出棧的時候,資料先出棧,然後指標減一
typedef struct linknode*listack;
習題
佇列的順序儲存型別可以描述為
typedef structsqquence;
為了解決假溢位的問題,提出來迴圈佇列的概念
void initquence(sqquence &q)
bool isempty(sqquence q)
bool enquence(sqquence &q,elemtype x)
bool dequence(sqquence &q,elemtype x)
佇列的鏈式表示稱為鏈佇列:是指同時帶有隊首指標和隊尾指標的單鏈表.頭指標指向隊頭結點,尾指標指向隊尾結點
void initquence(linknode &q)
bool isempty(linknode q)
void enquence(linknode &q,elemtype x)
- 出隊
bool dequence(linkquence &q,elemtype x)
資料結構考研學習筆記(五) 棧和佇列
棧頂 線性表允許進行插入刪除的那一端。棧底 固定的,不允許進行插入和刪除的另一端。空棧 不含任何元素的空表 initstack s 初始化乙個空棧s。stackempty s 判斷乙個棧是否為空,若棧s為空則返回true,否則返回false。push s,x 進棧,若棧s未滿,則將x加入使之成為新棧...
資料結構實驗三《棧和佇列》
資料結構 實驗三 棧和佇列 一 實驗目的 鞏固棧和佇列資料結構,學會運用棧和佇列。1.回顧棧和佇列的邏輯結構和受限操作特點,棧和佇列的物理儲存結構和常見操作。2.學習運用棧和佇列的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第5周到第6周,具體...
資料結構複習三 棧和佇列
先簡要介紹以下棧與佇列 棧 stack 是一種後進先出 lifo 的線性表,僅在表尾 即棧頂 進行插入或刪除操作,像火車排程的頭進尾出。佇列 queue 與棧相反,是一種先進先出 fifo 的線性表,只允許在一端進行插入,而在另一端進行刪除,允許插入的一端稱為隊尾,允許刪除的一端則稱為隊頭,就像日常...