C語言學習之資料結構棧的實現

2021-09-30 14:44:07 字數 1136 閱讀 1012

本文和大家分享的主要是c

語言資料結構中

學習c語言

有所幫助。

在函式呼叫的過程中,需要的就是先進後出的特點,因此,棧就出現了。

棧是一種資料結構,是計算機怎麼處理程式執行的一種方式。具有先進後出的特點,下面看的就是這些抽象的資料結構怎麼用c

語言**來實現,棧能實現,那麼其他的資料結構也就自然可以用

c語言實現的了,如:佇列。 c

語言實現棧的**,可以有陣列形式,鍊錶形式,下面講解的是陣列形式來實現。

靜態陣列因為有個大小,而且它在記憶體的棧區,預設為1m

,所以靜態陣列不會分配的很大,因此用陣列來實現,有個棧的容量的問題,自然就會帶出「棧頂

」和「棧底

」,的概念。

實現環境:visual studio 2017

儲存資料需要陣列,同時有個棧中當前位置,可以想的到,在c

語言中應該至少用結構體來實現。

實現棧的結構體如下:

然後根據棧的特點,會有這麼幾個介面: 1

:判斷是否棧滿; 2

:判斷是否棧空; 3

:設定棧為空; 4

:入棧; 5

:出棧;

為了方便陣列操作,先定義乙個巨集:

#define n 100

下面是各個介面的實現:

呼叫以上介面,來測試棧的效果:

測試結果:

其實棧的實現還有鍊錶的方式來實現。同時,c

語言實現棧,只能到面向過程的範圍。可以用

c++來實現物件導向的棧方式,呼叫起來更加方便,形如:

mystack ms;

ms.push(1);

ms.push(2);

ms.push(3);

ms.push(4);

ms.push(5);

彈出形如:

int a=ms.pop(1);

實現棧的方式雖然有多種,但是不要死記硬背,要根據自己的理解去選擇,怎麼適合自己的理解就怎麼選擇,靈活的學習輕鬆的學習,秘訣就在於此。比如我的筆記中就記錄了多種方式,但是這裡只選擇一種合適的:

程式設計領域其實是相通的,相通的東西就是程式設計思想,至於語言的語法不同,只是表現形式,要透過現象看本質,才能真正把握程式設計的靈魂,才能有希望學的越來越輕鬆,否則很可能陷入其中很苦惱。

C語言學習 資料結構(棧的實現)

c語言學習 資料結構 棧的實現 1 棧的簡述 棧是一種資料結構,它可以用來存放數字,一次只能存放乙個數字。一次只能向棧裡加入乙個數字。可以棧裡獲得乙個數字,一次只能獲得乙個數字。棧裡的數字有前後順序,先進入的數字在前,後進入的數字在後。每次從棧裡獲得數字必須是最後放進去的數字。這種使用規則叫後進先出...

資料結構之棧的實現 順序棧 C語言

學習參考 嚴蔚敏 資料結構 c語言版 要點 基本操作 入棧 出棧讀棧頂元素值 建棧棧滿 棧空清空棧 銷毀棧 實現 棧結構定義 typedef struct seqstack,pstack 建棧 int initstack pstack s,int size 棧滿 int stackfull psta...

資料結構之棧(C語言實現)

table of contents定義 實現定義結構 定義操作初始化棧 判斷棧是否為空 訪問棧頂元素 出棧 入棧 注 對線性表操作的限制有很多,上述只介紹兩種主流的限制,在資料結構中叫做棧和佇列。棧的概念比較抽象,舉個栗子 對,就是板栗的栗子 一群人依次走進乙個死胡同,寬度只夠通行乙個人。如果他們要...