棧 C語言版

2021-09-24 02:41:07 字數 1853 閱讀 8976

棧(lifo):運算所限的線性表,限制它的插入和刪除操作僅在表的一段進行。

棧頂(top)插入、刪除。另一端為棧底。

n=0稱為空棧,插入新元素稱為入棧、進棧。

刪除稱為出棧、退棧。

特點:先進後出。

基本運算:初始化棧、判斷空、入棧、出棧、讀棧頂元素。

順序棧儲存結構

初始化棧

stack * init()

判斷空

入棧:判斷是否棧滿,如果是提示越界,返回0。否則遞增棧頂指標(top),向棧頂指標指向的位置填入元素,返回1。

出棧:如果棧為空,這時出棧沒有元素,會出現溢位的情況,列印提示資訊。否則遞減棧頂指標top.

void push(stack *s)else

}

讀棧頂元素:如果不為空,直接返回棧頂指標指向位置的值。否則列印提示資訊,並返回0。

datatype top(stack *s)else

}

鏈式棧的儲存結構

初始化棧

linkstack * init()
判斷空

int empty(linkstack *top)else

}

入棧

linkstack * push(linkstack * top,datatype x)
讀棧頂元素

datatype toplinkstack(linkstack * top)
可以看出順序棧和鏈棧的插入和刪除的時間複雜度都為o(1),區別是鏈棧是動態申請的空間,順序棧是在定義棧的時候就申請好了空間的大小。

棧和佇列c語言版

定義 棧是限定僅在表尾進行插入和刪除操作的線性表。我們把允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 不含任何資料元素的棧稱為空棧。棧又稱為先進後出 last in first out 的線性表,簡稱lifo結構。首先他是乙個線性表,棧元素具有線性關係,即前驅後繼關係。是一種特...

資料結構(C語言版) 棧

1 棧 僅在表尾進行插入和刪除操作的線性表。後進先出lifo。1 表尾端 允許插入和刪除的一端 為棧頂,表頭端 不允許插入和刪除的一端 為棧底。2 入棧 插入元素的操作。出棧 刪除棧頂元素 2 棧的兩種儲存表示方式 2 鏈棧 棧的鏈式儲存結構 優點是便於多個棧共享儲存空間和提高效率。3 括號匹配檢驗...

棧的鍊錶實現(C語言版)

棧也是一種簡單常用的資料結構,他的特點是先進先出。現代化計算機將棧操作作為指令系統的一部分,棧也就有可能成為電腦科學中在陣列之後最基本的資料結構。所以,棧的重要性就不用多說了。其實現思路也比較簡單,這裡就不多解釋了,直接看 吧 include stack.h include struct node ...