棧的應用非常廣泛,凡是需要涉及“先入後出”的問題都可以使用棧來解決。如,進制轉換、迷宮求解、括號匹配等。在操作系統中進程切換時,內存的數據也是使用壓棧的方法保存起來的。
棧除了用於函數調用返回地址和動態變量管理以外,還可以應用於進制轉換。
#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);
}
相關推薦
推薦中...