用棧實現進製轉換

2021-06-22 03:37:52 字數 1022 閱讀 4071

在本例中,用棧實現二進位製到十進位制的轉換,其他進製轉換類似:

本例使用的棧的結構如下:

**如下:

#include #include using namespace std;

typedef struct node

node, *pnode; //棧中每個元素都是節點,這裡定義節點

typedef struct stack

stack, *pstack; //定義棧

void initstack(pstack ps);

void pushstack(pstack ps, char c);

char popstack(pstack ps);

bool isempty(pstack ps);

int stacknodenumber(pstack ps);

int main()

cin.get();

nodenum = stacknodenumber(&s);

for(int i=0; ipbottom = new node;

if(ps->pbottom == null)

cout << "記憶體分配失敗" << endl;

else

}void pushstack(pstack ps, char c) //將c壓入棧中

char popstack(pstack ps)

else

}bool isempty(pstack ps) //判斷棧中是否有元素

int stacknodenumber(pstack ps)

return num;

}

執行結果:

棧 利用棧實現進製轉換

利用棧的資料結構特點,將二進位制轉換為十進位制數。二進位制數是計算機資料的儲存形式,它是由一串0和1組成的,每個二進位制數轉換成相應的十進位制數方法如下 xnxn 1 x3x2x1 2 x1 2 0 x2 2 1 xn 2 n 1 乙個二進位制數要轉換為相應的十進位制數,就是從最低位起用每一位去乘以...

順序棧實現進製轉換

1.定義乙個順序棧的結構體。typedef struct sqstack 2.寫乙個建立空順序棧的函式 status init stack sqstack s 3.寫乙個輸出順序棧元素的函式 status exit stack sqstack s printf n 4.這裡進製轉換的方法就是,先把k...

用棧實現數制轉換(java)

十進位制數n和其他d進製數的轉換時計算機實現計算的基本問題,其解決方法很多,其中乙個簡單的演算法基於以下原理 n n div d d n mod d 例如 十進位制數 1348 的八進位制數為 2504 運算過程如下 nn div 8 n mod 8 1348168 4 16821 0 212 5 ...