棧的基本操作

2021-10-22 03:09:44 字數 1212 閱讀 4032

三.棧的鏈式儲存結構

棧是只允許在一端進行插入或刪除操作的線性表;

棧頂是指線性表允許進行插入或刪除的一端;

棧底是固定的,是不允許進行插入或刪除的另一端。

#define maxsize 10	

//定義棧中元素的最大個數;

typedef

struct

sqstack;

棧頂指標分為兩種方式

//第一種方式top=-1

//初始化棧

void

initstack

(sqstack &s)

bool

stackempty

(sqstack s)

void

teststack()

//進棧操作之新元素入棧

bool

push

(sqstack &s,elemtype x)

//出棧操作

//注:資料還殘留在記憶體中,只是邏輯上被刪除了

bool

pop(sqstack &s,elemtype &x)

//讀棧頂元素

bool

gettop

(sqstack s,elemtype &x)

//第二種方式top=0,即top指向下乙個可以插入的位置

//判斷棧空

s.top==0;

//進棧

s.data[s.top++

]=x;

//出棧

x=s.data[

--s.top]

;//棧滿條件

top==maxsize;

//共享棧,即兩個棧共享一片空間

#define maxsize 10

typedef

struct

shstack;

void

initstack

(shstack &s)

//判滿條件

s.top0+

1==s.top1;

鏈棧操作類似單鏈表(請參照單鏈表的基本操作)

進棧以及出棧都只能在棧頂的一端進行(鏈頭作為棧頂)

typedef

struct linknode

*listack;

//棧型別定義

棧 的基本操作。

include include typedef struct node node,pnode typedef struct stack stack,pstack void initialize pstack mystack 棧的初始化。int push stack pstack mystack,in...

棧的基本操作

描述 棧是一種重要的資料結構,它具有push k和pop操作。push k是將數字k加入到棧中,pop則是從棧中取乙個數出來。棧是後進先出的 把棧也看成橫向的乙個通道,則push k是將k放到棧的最右邊,而pop也是從棧的最右邊取出乙個數。假設棧當前從左至右含有1和2兩個數,則執行push 5和po...

棧的基本操作

下面先實現站的基本功能,最後通過乙個test來測試下方法是否實現 建個.c檔案 typedef struct seqstack 初始化 seqstack seqstackinit return null 判斷棧是否為空 int seqstackisempty seqstack s void seqs...