/***链栈实现数制的转换***/
#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int Selemtype;
typedef struct StackNode{
int data;
struct StackNode *next;
}StackNode,*LinkStack;
Status InitStack(LinkStack &S)//初始化
{
S = NULL;
return OK;
}
bool StackEmpty(LinkStack S)//栈是否为空
{
if(S)
return true;
return false;
}
Status Push(LinkStack &S,int e)//进栈
{
StackNode *p = new StackNode;
if(!p)
{
return ERROR;
}
p->data = e;
p->next = S;
S = p;
return OK;
}
Status Pop(LinkStack &S,int &e)//出栈
{
StackNode *p;
if(!S)
return ERROR;
e = S->data;
p = S;
S = S->next;
delete p;
return OK;
}
//数值的转换
void conversion()
{ StackNode *sa;
InitStack(sa);//构造空栈
cout<<"输入一个非负十进制数:"<<endl;
int N;
Selemtype e;
cin>>N;
while(N)
{
Push(sa,N%8);
N=N/8;
}
cout<<"与其等值的八进制数是:"
用栈链实现数值转换
最新推荐文章于 2021-11-10 13:38:24 发布
该博客通过链栈实现数制转换,从十进制到八进制的转换过程包括初始化链栈、读取非负十进制数、进栈、出栈并输出八进制数。提供了一个完整的C++代码示例。
摘要由CSDN通过智能技术生成