棧和佇列的操作

2021-10-23 01:11:21 字數 2978 閱讀 2613

1.順序棧的操作

#include

using

namespace std;

#define maxsize 100

#define ok 1

#define error 0

typedef

int selemtype ;

typedef

int status;

typedef

struct

sqstack;

///順序棧初始化

status initstack

(sqstack &s)

///判斷順序棧是否為空

bool

stackempty

(sqstack s)

///求順序棧的長度

status stacklength

(sqstack s)

///入棧

status push

(sqstack &s, selemtype e)

///出棧

status pop

(sqstack &s, selemtype &e)

///取棧頂元素

status gettop

(sqstack s, selemtype &e)

intmain()

gettop

(s,e)

;///獲得棧頂元素

cout <<

"輸出棧頂元素:"

<< e << endl;

pop(s,e)

;///出棧

cout <<

"輸出出棧元素:"

<< e << endl;

cout <<

stacklength

(s)<< endl;

return0;

}

2.鏈棧的操作

#include

#include

using

namespace std;

typedef

int selemtype;

typedef

int status;

#define ok 1

#define error 0

///鏈棧只在頭部進行操作,沒有必要附加頭結點

typedef

struct stacknode

stacknode,

*linkstack;

///初始化

status initstack

(linkstack &s)

///判斷鏈棧是否為空

bool

stackempty

(linkstack s)

///進棧

status push

(linkstack &s,selemtype e)

///出棧

status pop

(linkstack &s,selemtype &e)

///取棧頂元素

selemtype gettop

(linkstack s)

intmain()

3.鏈佇列的操作

#include

using

namespace std;

#define ok 1

#define error 0

typedef

int status;

typedef

int qelemtype;

typedef

struct qnode

qnode,

*queueptr;

typedef

struct

linkqueue;

///初始化

status initqueue

(linkqueue &q)

///銷毀佇列

status destroyqueue

(linkqueue &q)

return ok;

}///求鏈佇列的隊頭元素

status gethad

(linkqueue q,qelemtype &e)

///入隊

status enqueue

(linkqueue &q,qelemtype e)

///出隊

status dequeue

(linkqueue &q,qelemtype &e)

intmain()

4.迴圈佇列的操作

#include

#include

using

namespace std;

#define ok 1

#define error 0

#define overflow -1

#define maxsize 100

typedef

int status;

typedef

int qelemtype;

typedef

struct

sqqueue;

///初始化

status initqueue

(sqqueue &q)

///迴圈佇列的長度

status queuelength

(sqqueue q)

///迴圈隊列入隊

status enqueue

(sqqueue &q, qelemtype e)

///迴圈佇列出隊

status dequeue

(sqqueue &q,qelemtype &e)

///取隊頭元素

status gethad

(sqqueue q,qelemtype &e)

intmain()

棧和佇列的基本操作

看歐立奇的 程式設計師面試寶典 的棧和佇列的部分,發現了部分問題。其中棧的部分,不能簡單的用malloc函式來初始化stack,應該呼叫create 函式 而且棧的base應該指向棧的最下面的資料的下乙個位址。全部除錯通過 棧的部分通過單鏈表來實現鏈棧的結構 include using namesp...

棧和佇列的有關操作

1 掌握棧 佇列的思想及其儲存實現。2 掌握棧 佇列的常見演算法的程式實現。1 採用鏈式儲存實現棧的初始化 入棧 出棧操作。2 採用順序儲存實現棧的初始化 入棧 出棧操作。3 採用鏈式儲存實現佇列的初始化 入隊 出隊操作。4 採用順序儲存實現迴圈佇列的初始化 入隊 出隊操作。5 在主函式中設計乙個簡...

棧和佇列的有關操作

實驗內容 1 用順序儲存定義棧結構。寫出這種儲存方式下的演算法實現,包括 初始化棧 判棧為空 出棧 入棧 求棧頂元素 等運算,自己填寫主函式。2 利用順序棧的基本操作 設計演算法,實現將任意乙個十進位制整數轉化為r進製整數 3 用順序儲存來定義迴圈佇列結構。程式設計實現,初始化佇列 判佇列 為空 出...