資料結構 線性表 棧(8個常見操作)

2021-10-14 15:04:05 字數 1916 閱讀 3429

一、棧的定義以及一些名詞解釋

棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算

棧允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空棧。插入一般稱為入棧(push),刪除則稱為出棧(pop)。

由於堆疊資料結構只允許在一端進行操作,因而按照先進後出(filo, first in last out)的原理運作。

先進後出,個人理解類似於子彈上膛,先裝入的子彈最後被打出。

二、對棧的常見操作

1、初始化棧(init)

2、向棧裡壓入元素(push)

3、得到棧頂元素內容(pop)

4、統計棧內元素個數(getcount)

5、清空棧(clear)

6、得到棧頂元素(gettop)

7、銷毀棧(destory)

8、判斷棧是否為空(isempty)

三、**實現

1、想要對乙個棧完成各種操作,首先你需要有乙個棧,棧內需要有什麼?

棧內有元素,還有指標,且最重要的元素為棧頂元素,我們只需要知道棧頂元素就能夠通過它獲得next,next->next, next->next->next, …

顯然,我們需要乙個結構體來封裝我們這乙個元素所具有的屬性,也就是資料結構體,裡面有元素的值和指標。

好了,那我們先來看一段**

#include

#include

typedef

struct stack

mystack;

void push (mystack *

*ptop,

int nnum)

intpop

(mystack *

*ptop)

intmain()

這是對棧的乙個push和pop操作

資料結構 線性表操作

1 有兩張非遞增有序的線性表a,b,採用順序儲存結構,兩張表合併用 c表存,要求 c為非遞減有序的,然後刪除c表中值相同的多餘元素。includeusing namespace std define maxsize 100 define overflow 1 define error 0 defin...

資料結構 線性表 順序棧的操作

如下 include include define maxsize 50 使用陣列實現棧的結構 typedef int elemtype typedef struct stacksqstack 初始化棧 void initstack sqstack s 判斷棧空 bool stackempty sq...

資料結構棧 線性表實現

棧的定義 棧是一種特殊的表這種表只在表頭進行插入和刪除操作。因此,表頭對於棧來說具有特殊的意義,稱為棧頂。相應地,表尾稱為棧底。不含任何元素的棧稱為空棧。而本次給大家介紹用線性表實現的棧。如圖 這裡介紹雙向鍊錶的常用操作 l 建立棧 l 銷毀棧 l 清空棧 l 壓棧 l 出棧 l 返回棧頂元素 l ...