数据结构之栈的进制转换(10进制-- > 8进制 )

#include<iostream>
#include<stdlib.h>
#include<malloc.h>
#include<stdio.h>
#define max 100
using namespace std;
typedef struct
{
int stack[max];
int top;
}seqstack;
void init(seqstack *l)
{
l->top=-1;
}
int empty(seqstack s)
{
if(s.top==-1)
{
printf("栈空");
return 1;
}

else
{
printf("栈没空");
return 0;
}
}
int top(seqstack l,int *s)
{
if(l.top<0)
{
printf("栈已空!\n");
return 0;
}
{
*s=l.stack[l.top];
return 1;
}
}

int push(seqstack *s,int x)
{
if(s->top>=max)
{
printf("栈已满,不能进栈!\n");
return 0;
}
else
{
s->top++;
s->stack[s->top]=x;
return 1;
}
}

int pop(seqstack *s,int e)
{
if(s->top==-1)
{
printf("栈已空");
return 0;
}
else
{
e=s->stack[s->top];
printf("%d",e);
s->top--;
return 1;
}
}
void dis(seqstack l)
{
while(l.top>-1)
{
printf("%d ",l.stack[l.top]);
l.top--;
}
printf("\n");
}

 


int main()
{
seqstack l;
int e;int n;int x;
printf("请输入一个数:");
scanf("%d",&n);
//seqstack *s
//s=(seqstack*)malloc(sizeof(seqstack))
//必须要动态分配否则指针用完被释放
//
//使用指针只是复制一份形参 在被调函数运行完就会失效
//但是取址是址传递 改变了值
init(&l);
while(n>0)
{
e=n%8;
push(&l,e);
n=n/8;
}
while(l.top>=0)
{
pop(&l,x);

}
return 0;
}

//测试数据3467

 

转载于:https://www.cnblogs.com/mykonons/p/6298402.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值