棧的應用(數制轉換)

2021-06-06 19:20:24 字數 1542 閱讀 4135

程式功能:對於輸入的任意乙個非負十進位制整數,列印輸出與其等值的八進位制數。

標頭檔案:c3-1.h

#ifndef c_3_1_h

#define c_3_1_h

#include #include #include #define true 1

#define false 0

#endif

algorithm.h

//標頭檔案裡面最好只放宣告類的檔案

#ifndef algorithm_h

#define algorithm_h

#include "c3-1.h"

typedef int elementtype;

//結點

typedef struct node

node, *pnode;

//棧typedef struct stackrecord

stack, *pstack;

//函式宣告

int initstack(pstack s);

int stackempty(pstack s);

int destroystack(pstack s);

int clearstack(pstack s);

void push(pstack s, int value);

int pop(pstack s, int *e);

#endif

子程式

#include "algorithm.h"

#include "c3-1.h"

//初始化乙個鍊錶棧

int initstack(pstack s)

else }

//銷毀乙個棧

int destroystack(pstack s)

int clearstack(pstack s)

//入棧

void push(pstack s, int value)

//判斷棧是否為空

int stackempty(pstack s)

//出棧

int pop(pstack s, int *e)

else

}

測試主函式:

/*	

對於輸入的任意乙個非負十進位制整數,

列印輸出與其等值的八進位制數

*/#include "algorithm.h"

#include "c3-1.h"

int main(void)

while(!stackempty(&s))

printf("\n");

return 0;

}

執行結果

數制轉換 棧的應用

問題描述 將乙個非負的十進位制整數n轉換為另乙個等價的基為b的b進製數的問題。解答 按除2取餘法,得到的餘數依次是1 0 1 1,則十進位制數轉化為二進位制數為1101。分析 由於最先得到的餘數是轉化結果的最低位,最後得到的餘數是轉化結果的最高位,因此很容易用棧來解決。如下 include incl...

棧的應用 數制轉換

數制轉換 十進位制數n和其它d進製數的轉換是計算機實現計算的基本問題,其解決方法很多,其中一種簡單方法基於以下原理.n n div d d n mod d 其中 div為整除運算,mod 為求餘運算.例如 10進製數1348轉換為8進製為 2504.其運算過程如下 n n div d n mod d...

棧的應用1 數制轉換

一般分為 二 八 十 十六這幾種常見的 沒錯就是我現在能見到的 x進製就是0 x 1構成每一位,就如二進位制是0 1,八進位制是0到7 數制轉換一直是計算機的乙個基本問題,目前已經有了很多的解決方法。如果是其他進製轉換十進位制 因為十進位制多數人還是比較熟悉的,畢竟買菜時價錢不是二進位制的 先找到每...