棧的應用|進制轉換

迪吉多 技術 小智雅匯 2017-06-14

棧的應用非常廣泛,凡是需要涉及“先入後出”的問題都可以使用棧來解決。如,進制轉換、迷宮求解、括號匹配等。在操作系統中進程切換時,內存的數據也是使用壓棧的方法保存起來的。

棧除了用於函數調用返回地址和動態變量管理以外,還可以應用於進制轉換。

#include <stdio.h>

#include "Stack.h"

void Conversion(int dec,int n);

void main()

{

Conversion(31,2);

Conversion(31,8);

Conversion(31,16);

}

void Conversion(int dec,int n)

{

const char * alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

Stack *sp = InitStack();

int rem,num;

while(dec>0)

{

rem =dec % n;

dec = dec /n;

Push(sp,rem);

}

while(!IsEmpty(sp))

{

Pop(sp,&sum);

if(num<10)

printf("%d",num);

else

printf("%c",alphabet[num-10]);

}

printf("\n);

}

相關推薦

推薦中...