栈的C语言基本操作

这是数据结构中栈的基本操作的代码。栈是一个后进先出的线性结构,也有顺序栈和链栈两种结构,这里采用顺序储存结构。

包括建立栈、元素进栈、取栈顶元素等基本操作。还包括十进制向八进制的转换(稍加修改可以将十进制转换为任意进制的数)

 

#include <stdio.h>
#define size 50
#include <malloc.h>
#define OVERFLOW -1
#define OK 1
#define ERROR 0
typedef int elemtype;
typedef int status;
typedef struct
{
 elemtype base[size];
 int top;
}stack;
void   initstack(stack &s)
{//初始化空栈
 s.top=-1;
}
void push(stack &s,elemtype e)
{//元素进栈
 s.top++;
 s.base[s.top]=e;
}
void output(stack s)
{//output all elements in the stack s
 int i;
 for(i=s.top;i>=0;i--)
 {
  printf("%-5d",s.base[i]);
 }
}
status gettop(stack s,elemtype topelem)
{//get the top element of stack s
 topelem=s.base[s.top];
 
 return topelem;
}
void delstack(stack &s)
{//删除栈顶元素
 s.base[s.top--]=NULL;
}
void main()
{
 stack s;
 int flag=1,e,topelem,a,temp,i;
 initstack(s);
 
 printf("十进制转八进制\n请输入一个十进制数a=");
 scanf("%d",&a);
 temp=a;
 while(temp!=0)
 {
  i=temp%8;
  push(s,i);
  temp=temp/8;
 }
 printf("%d的八进制代码为",a);
 output(s);printf("\n");
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值