一、棧的定義以及一些名詞解釋
棧(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 ...