C語言棧的用法(建立 入棧 出棧 遍歷)

2021-09-12 17:24:06 字數 1245 閱讀 6589

本篇部落格主要簡單介紹如何使用c語言構建棧,元素入棧,元素出棧以及遍歷所有的棧內元素

首先對棧進行定義,構建乙個簡單的結構體,採用typedef struct 的型別,然後包含棧頂、棧底和棧內元素三個部分

typedef structstack;
上述**表示構建乙個名字是stack型別的結構體,包含三個部分。

然後是棧的構建,來為棧開闢記憶體空間,儲存我們進行入站出棧的元素。只需在棧操作開始前進行一次棧的構建即可,無需重複。

stack *stackcreate()
上述**段為向p內分配記憶體,成功則返回p

棧構建完畢後就開始進行棧的操作了,首先就是如何將字元、數字等我們想要的內容送入棧中,就需要進行入棧操作。

void stackinput(stack *p,char str)
將字元str存入棧中,位置為top,只存在data中,然後棧top++

當我們想要棧頂的元素時,就用到了出棧的操作

char stackoutput(stack *p,char str)

}

因為top位置為棧頂值的下乙個,因此將data中top-1的值輸出,棧頂top–,返回的值為棧頂元素str

但我們想要輸出棧內儲存的所有元素,那麼就需要使用到遍歷

void stackprint(stack *p)

}

從棧頂元素開始,直到top==bottom為止,輸出其中data儲存的元素值

下面我們簡單看一下壓入乙個字元和壓入字串的情況

int main()
將字元b壓入棧中,然後從棧中輸出

//建立棧

stack *stackcreate()

//入棧

void stackinput(stack *p,char str)

//出棧

char stackoutput(stack *p,char str)

} //輸出

void stackprint(stack *p)

}//主函式

int main()

鏈棧的建立 入棧 出棧

鏈棧是在鍊錶基礎上建立的,鏈棧的棧頂指標相當於鍊錶中的頭指標。示意圖如下 建立空棧函式 chainstack createchainstack chainstack s s data 1 s next null return s 入棧 chainstack push chainstack s,typ...

棧元素入棧出棧操作(C)

元素入棧時,會先將棧壓入,top指標再向上加一。c語言如何實現呢,下面是入棧的 片段 typedef struct node sqstack void push sqstack s,int elem 入棧 s top elem,s本為指向node結構的乙個指標,本來對普通結構體指標賦值或者使用用 s...

C語言鏈式儲存結構棧的出棧和入棧

棧的鏈式儲存結構就是使用鍊錶儲存棧中資料元素,此時的棧稱為鏈棧。通常採用帶頭結點的單鏈表儲存棧。棧的操作許可權在棧頂進行,可將頭節點指標指向棧頂節點,如用top指標指向頭結點,稱為top結點。a n 1 a1a0 圖1.1 棧的邏輯結構 圖1.2 棧的鏈式儲存結構 struct node tpede...