#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int* base; //栈底指针
int* top; //栈顶指针
int maxsize; //栈的最大容量
}SqStack;
//栈的初始化
void InitStack(SqStack &s)
{
s.base=(int*)malloc(MAXSIZE*sizeof(int)); //分配一个从s.base 开始的连续的空间
if(!s.base)
{
exit(0);
}
s.top=s.base; //s.top与s.base完全相同,只是变量名不同
s.maxsize=MAXSIZE;
}
//入栈
bool push(SqStack &s,int e)
{
//判断若栈满返回0
if(s.top-s.base==MAXSIZE)
{
return false;
}
*s.top=e;
s.top++;
return true;
}
//出栈
bool put(SqStack &s, int &e)
{
//判断栈是否为空
if(s.base==s.top)
{
return false;
}
int *p=s.top-1;
e=*p;
s.top--;
return true;
}
void DisStack(SqStack s)
{
int e;
while(true)
{
put(s,e);
printf("%d",e);
if(s.top==s.base)
{
break;
}
}
}
int main()
{
while(true)
{
SqStack s;
int n,n1;
printf("请输入数值: ");
scanf("%d",&n);
InitStack(s);
while(n)
{
push(s,n%8);
n=n/8;
}
printf("八进制: ");
DisStack(s);
printf("\n");
printf("----------------\n");
printf("结束?(1||0)\n");
scanf("%d",&n1);
if(n1==1)
{
break;
}
}
return 0;
}
顺序栈实现十进制转八进制
原文作者:进制转换
原文地址: https://blog.csdn.net/qq_37471920/article/details/82995330
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/qq_37471920/article/details/82995330
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。