資料結構 利用棧進行數制轉換的實現

2021-09-18 03:43:23 字數 839 閱讀 4304

程式如下:(當程式執行後,比如數個1348,結果無限返回2,,是什麼問題呢,,跪求大佬。)

#include

#include

#define stack_init_size 100

#define stackincrement 10

typedef int elemtype;

typedef int status;

using namespace std;

typedef struct

sqstack;

status initstack(sqstack &s)

s.top = s.base;

s.stacksize = stack_init_size;

return 1;

//判斷棧是否為空

}status push(sqstack &s, elemtype e)

s.top = s.base + s.stacksize;

s.stacksize += stackincrement;

}*s.top++ = e;

return 1;

}//插入元素e為棧頂元素

status stackempty(sqstack s)

status pop(sqstack s, elemtype &e)

e = *–s.top;

return 1;

}//刪除棧頂元素,並返回

int main()

while (!stackempty(s))

cout << endl;

system(「pause」);

return 1;

}

利用堆疊進行數制轉換

下面以無符號十進位制轉換為八進位制為例簡述數制轉換問題。將十進位制數num轉換為八進位制可以反覆執行以下步驟得到 1,將num除以8,取其餘數 2,判斷num除以8的商 若商為零,則轉換到此結束 若商不為零,則將商送num,轉到第1步。演算法描述如下 將無符號十進位制數轉換為八進位制數 堆疊採用順序...

利用棧進行數制轉換和括號匹配(C語言)

數制轉換 將十進位制數轉換為任意進製數。由數制轉換的計算公式 n n d d n d 其中n為想轉換的十進位制數,d為想轉換的進製 我們可以知道其轉換後的結果是逆序輸出,故可以利用棧的先進後出的特性,將每一步計算的結果依次入棧之後再出棧,得出的結果正好是轉換後的數。括號匹配 即利用棧檢驗輸入的括號是...

資料結構實踐 數制轉換 棧

本文是針對資料結構基礎系列網路課程 3 棧和佇列的實現專案。專案 數制轉換 把十進位制的整數轉換為任一進製數輸出。請利用棧設計演算法,並實現程式。參考解答 解法 標頭檔案sqstack.h請見 順序棧演算法庫 使用鏈棧也可以。include include sqstack.h void multib...