加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数据结构之c语言实现顺序栈的基本操作

(2009-11-19 19:09:47)
标签:

杂谈

分类: 计算机板块

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

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

 

#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

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有