栈的C语言基本操作

来源:互联网 发布:简述算法的复杂度分析 编辑:程序博客网 时间:2024/05/01 01:37

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

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

 

#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");
}

0 0
原创粉丝点击