資料結構基礎 棧

2021-09-27 03:36:46 字數 1897 閱讀 4430

一、進製轉換

二、括號匹配

三、行編輯

stack_head.h

#include

#include

#define stackincreament 10

#define stack_init_size 100

#define ok 1

#define error 0

typedef

int status;

typedef

char selemtype;

typedef

struct

sqstack;

/* *初始化棧

*/status init

(sqstack *s)

/* *獲取棧頂元素

*/status gettop

(sqstack *s, selemtype e)

/* *壓棧

*/status push

(sqstack *s, selemtype e)

*s->top++

= e;

return ok;}/*

*出棧*/status pop

(sqstack *s,

int*e)/*

*判斷是否為空棧 */

status stackempty

(sqstack *s)

/* *清空棧

*/status clearstack

(sqstack *s)

/* *銷毀棧

*/int

destorystack

(sqstack *s)

/* *進製轉換

*/void

stack_conversion

(int num,

int b)

while

(s.base!=s.top)}/*

*括號匹配

*/status parenthesis_match

(sqstack *s,

char

*str)

break

;case

'}':

break

;case

']':

break

;default

:break;}

if(flag)

/*判斷是否遇到不可解的情況*/

break

; i++;}

if(!flag &&

stackempty

(s))

printf

("括號匹配成功!\n");

else

printf

("括號匹配失敗!\n");

return ok;}/*

*行編輯

*/void

lineedit

(sqstack *s)

ch =

getchar()

;}p = s->base;

while

(p!=s->top)

clearstack

(s);

if(ch!=

eof) ch =

getchar()

;}return

;}

main.c
#include

"stack_head.h"

intmain()

執行結果:

資料結構基礎之棧

棧 一種操作受限的線性表,只允許在一端插入和刪除資料。漢諾塔你有沒有玩過,每根柱子上的碟子每次只能操作最上層的乙個,或者,你可以想象平時生活中的盤子的堆疊方式,每次我們使用時都是從最上層拿乙個,放的時候也是放在最上次,這種型別的結構就是典型的棧結果,滿足,後進先出 先進後出的特點,這也是棧的資料結構...

資料結構基礎之棧

資料結構之棧結構 1.棧的特點 相比於乙個普通的陣列,棧控制了操作的方法,元素只能在棧頂入棧,也只能在棧頂出棧。2.棧的用途 在深入優先搜尋 dfs 中會用到,比如現在有乙個圖如下 現在要從a出發要遍歷整張圖,那麼首先看與a相連的b d,任選乙個,比如b,那麼要先儲存a,將其壓入棧,然後遍歷b,b又...

資料結構 棧 棧

可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...