C語言實現棧的順序儲存與鏈式儲存

2021-10-05 08:42:37 字數 1593 閱讀 5518

一、實驗目的

1.深入了解棧的定義和特性。

2.掌握棧的順序表示、鍊錶表示以及相應操作的實現,鞏固對這兩種結構的構造方法的掌握。

3. 會靈活運用棧結構解決某些實際問題。

二、實驗內容

1. 棧的基本操作的實現(初始化、賦值、取值、插入、刪除等),要求分別採用順序和鏈式儲存結構。

順序棧源程式

#include

#include

#define maxsize 100

#define ok 1

#define error 0

#define overflow -1

typedef

int selemtype;

typedef

int status;

typedef

struct

sqstack;

status initstack

(sqstack &s)

//順序棧的初始化

intassign

(sqstack &s,selemtype e)

//元素e壓入棧頂,棧頂指標加1

return ok;

} selemtype gettop

(sqstack s,selemtype &e)

//取值

status push

(sqstack &s,selemtype e)

//插入

status pop

(sqstack &s,selemtype &e)

//刪除

intmain()

執行結果

鏈棧源程式

#include

#include

#define maxsize 100

#define ok 1

#define error 0

#define overflow -1

typedef

int selemtype;

typedef

int status;

typedef

struct stacknode

stacknode,

*linkstack;

status initstack

(linkstack &s)

//鏈棧的初始化

intassign

(linkstack &s,selemtype e)

return ok;

}status push

(linkstack &s,selemtype e)

status pop

(linkstack &s,selemtype &e)

selemtype gettop

(linkstack s,selemtype &e)

intmain()

執行結果

! 順序棧與鏈式棧的C語言實現 !

基本操作 入棧 出棧 取棧頂元素 基本特性 先進後出 注意 棧本身不能遍歷,不能列印,我們在 中實現的列印只是為了檢查 的正確性 具體操作的詳細解釋在 中會有注釋。1.順序棧 在結構體內定義乙個變數以 使用malloc申請記憶體,從而實現將順序表的固定長度修改為可動態擴容 seqstack.h pr...

棧的鏈式儲存結構(C語言實現)

1 include 2 include 3 4 define ok 1 5 define err 2 6 define true 1 7 define false 0 89 typedef int status 定義函式返回的狀態,ok err 10 typedef char datatype 定義...

C語言實現棧(鏈式棧)

由於棧的插入 刪除操作只能在一端進行,而對於線性鍊錶來說,在首端插入或 刪除比在尾端要容易一些,所以,將線性鍊錶的首端作為棧頂端,即將頭指標作為棧頂指標。1 結構體 1 typedef struct nodenode 56 typedef struct my stackstack 2 初始化 1 s...