#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
typedef struct SNode //定义结点
{
struct SNode *next;
int data;
}SNode,*SqStack;
SqStack *top;
void initStack(SqStack *L) //创建链表
{
L=(SqStack*)malloc(sizeof(SqStack));
(*L)->next=NULL;
}
int Empty(SqStack L) //判断链表是否为空
{
return(L->next==NULL?1:0);
}
void Push(SqStack L,int x)//入栈
{
SNode *p,*q;
p=L;
q=new SNode();
q->data=x;
q->next=p->next;
p->next=q;
}
void Pop(SqStack L,int x)//出栈
{
SNode *p,*q;
p=L;
if(Empty(L))
cout<<"栈为空"<<endl;
else
{
q=p->next;
x=q->data;
p->next=q->next;
free(q);
}
}
void GetTop(SqStack L,int x)//取栈顶元素
{
if(Empty(L))
cout<<"栈为空"<<endl;
x=L->next->data;
}
void conversion(int x)//十进制转换到二、八或十六进制
{
int i,y;
cout<<"请输入转换后的数制(2,8,16):";
cin>>i;
SqStack *L;
L=new SqStack();
while(!x)
{
Push(*L,x%i);
x=x/i;
}
while(!Empty(*L))
{
Pop(*L,y);
cout<<y;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int x;
cin>>x;
conversion(x);
return 0;
}
运行会后异常中断