C 呼叫順序棧的基本操作實現進製轉換

2021-10-24 13:21:44 字數 1802 閱讀 2734

提前定義好常量,根據需要定義棧的長短。

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...