棧是特殊的線性表,規定插入和刪除在同一端進行ps:例如:abc進棧、出棧共有幾種情況進行插入和刪除的那一端成為棧頂,另一端為棧底
插入為進棧,刪除為出棧
先進後出
上溢:超出規定的空間大小還進行插入操作
下溢:棧中元素已經用完了還進行刪除操作
#include
#include
#include
#define maxsize 100
typedef
struct
sequence_stack;
void
init
(sequence_stack *st)
intempty
(sequence_stack st)
intread
(sequence_stack st)
else
return st.a[st.top -1]
;}void
push
(sequence_stack *st,
int x)
st->a[st->top]
= x;
++st->top;
}void
pop(sequence_stack *st)
--st->top;
}void
display
(sequence_stack st)
for(
int i =
0; i < st.top;
++i)
printf
("%5d"
, st.a[i]);
}void
do_empty
(sequence_stack *st)
st->top =0;
}int
main()
#include
#include
#define maxsize 100
typedef
struct
sequence_stack;
void
init
(sequence_stack *st)
intempty
(sequence_stack st)
intread
(sequence_stack st)
else
return st.a[st.top -1]
;}void
pop(sequence_stack *st)
--st->top;
}void
push
(sequence_stack *st,
int x)
st->a[st->top]
= x;
++st->top;
}int
match_kuohao
(char c)
':if(
!empty
(s)&&
read
(s)==
'else
return0;
case
']':if(
!empty
(s)&&
read
(s)==
'[')
else
return0;
case
')':if(
!empty
(s)&&
read
(s)==
'(')
else
return0;
}++i;
}return
empty
(s);
/*棧為空則匹配,否則不匹配*/
}int
main()
st.top = num;
char c[maxsize]
;printf
("請輸入括號(包括(){}):");
for(
int i =
0; i < st.top;
++i)if(
!match_kuohao)
printf
("不匹配");
else
printf
("匹配");
return0;
}
順序儲存 資料結構 棧
備註 以列表為基礎進行對此的封裝,以便達到棧的效果及作用 1 2棧的順序儲存結構 3重點 4 56 自定義棧異常 7class stackerror exception 8pass910 基於列表實現順序棧 11class sstack 12def init self 13 約定列表的最後乙個元素為...
資料結構 棧的順序儲存結構
什麼是棧?簡單的說是乙個後進先出的表,類似於彈夾,後入的子彈先打出來。下面是棧的一些具體操作步驟 首先是棧的結構定義 typedef int selemtype typedef struct sqstack,sq 棧的初始化 建立操作 sq initstack sq s s top 1 printf...
資料結構 棧的順序儲存
棧是一種後進先出的資料結構,也就是說他不像陣列那樣子,可以在中間插入,棧只能夠在上乙個存入資料的後面再存資料,而且只能取現進去的資料。棧簡稱lifo結構。棧是限定僅在表位進行插入和刪除操作的線性表。允許插入和刪除的一端叫棧頂,另一端叫棧底,不含任何元素的叫空棧。棧的插入操作,叫做進棧,也稱作壓棧,入...