只需在链栈的基础上加上数制转换函数:
void Coversion(Stack *st)。
具体代码如下:
void Coversion(Stack *st)//数制转换
{
int N,n;
InitStack(st);
cout<<"请输入要转换的十进制数:"<<endl;
cin>>N;
cout<<"请输入所需转换进制数:"<<endl;
cin>>n;
while(N)
{
push(st,N%n);
N = N/n;
}
while(!StackEmpty(st))
{
cout<<GetTop(st)<<endl;
pop(st);
}
}
头文件:
#ifndef _STACK_H
#define _STACK_H
#include<iostream>
#include<assert.h>
using namespace std;
#define ElemType int
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*PNode;
typedef struct Stack
{
PNode top;
PNode rear;
size_t size;
}Stack;
int StackEmpty(Stack *st);
void InitStack(Stack *st);//初始化
bool push(Stack *st,ElemType x);//尾插
bool pop(Stack *st);//头删
void ShowStack(Stack *st);//打印
void clear(Stack *st);//清除
void destroy(