提前定義好常量,根據需要定義棧的長短。
const
int maxsize =
20;
定義棧的結構:因為涉及到進製轉換,這裡的data陣列是int型別
typedef
struct
sqstack;
初始化棧
void
initstact
(sqstack *
&s)
銷毀棧(非必須)
void
destroystack
(sqstack *
&s)
判斷棧是否為空
bool
stackempty
(sqstack *
&s)
進棧
bool
push
(sqstack *
&s,int e)
出棧
bool
pop(sqstack * s,
int& e)
取棧頂元素 (不必要)
bool
gettop
(sqstack * s,
int& e)
進製轉換函式
void
change
(int number,
int aimscale, sqstack* s)
//number為要被轉換的數 aimscale為目標進製 s為棧
}
列印
void
printnumber
(sqstack* s)
}
總**
#include
using
namespace std;
const
int maxsize =20;
typedef
struct
sqstack;
void
initstact
(sqstack *
&s)void
destroystack
(sqstack *
&s)bool
stackempty
(sqstack *
&s)bool
push
(sqstack *
&s,int e)
bool
pop(sqstack * s,
int& e)
bool
gettop
(sqstack * s,
int& e)
void
change
(int number,
int aimscale, sqstack* s)
//number為要被轉換的數 aimscale為目標進製 s為棧
}void
printnumber
(sqstack* s)
}int
main()
遺留問題:
1.對於大於十進位制的字母表示和進製範圍未做出限制處理,不正確的進製會導致各種問題。
2.沒有規定輸入的數的進製,預設是十進位制。
順序棧的基本操作實現
這些都是頭函式裡的內容,也就是儲存之後,可以直接 對其進行呼叫。其中的乙個變數stacklen是用來記錄棧 的長度的,其實,這個變數可以不要,只是剛開始寫時 給它加上了,所以就按這樣寫了,感覺跟順序表的寫法 差不多 include include includeusing namespace std...
C 順序棧基本操作
1 include 2 define stacksize 50 設棧中元素個數為50個 3using namespace std 45 struct seqstack6 1011 構造乙個空棧 12 void initstack seqstack s 1316 17 將x置入s棧新棧頂 18 boo...
棧的基本操作及實現(順序棧)
順序儲存結構來實現的棧稱為順序棧,它利用一組位址連續的儲存單元存放自棧底到棧頂的資料元素,同時附設乙個指標top來指示當前棧頂的位置。注意,是c 特有的用來表示引用呼叫,所以此檔案應以.cpp字尾儲存 結構體為 define maxsize 50 typedef int elemtype typed...