棧的基本操作

2021-08-01 06:46:48 字數 1595 閱讀 1564

棧是一種只允許在一端進行插入和刪除操作的線性表,在表中只允許進行插入和刪除的一端稱為棧頂,另一端稱為棧底。

棧具有「先進後出」的特性,即,先入棧的被壓入棧底,後入棧的在棧頂。

棧的儲存結構有兩個,順序儲存和鏈式儲存。

(1)棧的順序儲存結構

利用順序儲存方式實現的棧稱為順序棧。棧中資料元素用乙個預設的足夠長度的一維陣列來實現。棧頂隨著插入和刪除而變化。

順序棧的型別描述如下:

typedef

struct seqstack;

定義乙個指向順序棧的指標: seqstack *s;

示意圖:

順序棧基本操作

1.初始化

置空棧:初始化棧頂指標。

/*初始化*/

seqstack *initstack()

2.進棧:首先判斷棧是否滿了,如果棧滿,返回false。否則進棧。

/*進棧*/

void push( seqstack *s, datatype x )else

}

3.取棧頂元素

/*取棧頂元素*/

int topstack( seqstack *s )else

}

4.判斷棧是否為空

/*判斷棧是否為空*/

int isempty( seqstack *s )else

}

5.出棧

/*出棧*/

void pop( seqstack *s, datatype *x )else

}

(2)棧的鏈式儲存方式

鏈式棧的型別描述如下:

typedef

struct stacknodestacktype;

示意圖:

鏈式棧的基本操作

入棧

//入棧

int push(stacktype *top, elemtype x)

//申請乙個結點

p->

data

= x;

p->next = top->next;

top->next = p;

return

true;

}

出棧

//出棧

elemtype pop(stacktype *top)

p = top->next;

top->next = p->next;

x = p->

data;

free(p);

return x;

}

(完)

棧 的基本操作。

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...