打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
堆栈的实现
#define MAX_STACK      100
 
typedef struct
{
      char *data;
      int st;
}STACK;
 
STACK *createstack()
{
      STACK *s;
 
      s = (STACK *)malloc(sizeof(STACK));                  //分配一个保存堆栈结构的内存地址
      if(!s)  return 0;
      s->data = (char *)malloc(MAX_STACK*sizeof(int));
      if(!s->data)
      {
            free(s);
            return 0;
      }
      s->st = 0;
      return s;
}
 
将数据e压入堆栈,然后,将栈顶指针自增1
int push(STACK *s,int e)
{
      if(!s) return 0;
      if(!s->data)  return 0;
      if(s->st>MAX_STACK) return 0;
      s->data[s->st++] = e;
      return 1;
}
 
从堆栈中弹出数据,将栈顶指针先自减1,再返回栈顶的数据
int pop(STACK *s)
{
      if(!s) return 0;
      if(!s->data) return 0;
      if(s->st<0) return 0;
      return s->data[--s->st];
}
 
int main()
{
      int i,n;
      STACK *s = createstack();
 
      for(i=0;i<10;i++)
      {
            printf("Input data to heap:");
            scanf("%d",&n);
            push(s,n);
      }
      printf("output from heap:");
      for(i=0;i<10;i++)
         printf("%d",pop(s));
      prinf("\n");
      return 0;
}
 
 
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
本计算器利用堆栈来实现
把中缀表达式化为后缀表达式
【题解】表达式的值
3.15
数据结构——栈PTA习题
queue stack
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服