一、進製轉換
二、括號匹配
三、行編輯
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...