c语言动态双端栈的原理,c语言 C语言 双向栈 算法

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

llflng

2014.05.01

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:51%    等级:8

已帮助:514人

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include #include #include #define Maxsize 1024typedef struct{   int data[Maxsize];   int top,base;}stack; stack  *InitStack(stack *s){               //置空双向栈      s->top=-1;   s->base=Maxsize;   return s;   } int panduan(stack *s){                 //判断是否满了 if ((s->top+1)==(s->base))  return 1; else   return 0;}int empty(stack *s,int i){           //判断两个栈是否为空,i为栈号 if (i==0&&s->top==-1||i==1&&s->base==Maxsize)  return 1; else   return 0;} void push(stack *s,int i,int e){           //入栈 while (panduan(s)){  if(i==1){   s->top++;   s->data[s->top]=e;  }  else if(i==2){   s->base--;            s->data[s->base]=e;  }  else    printf("您输入的栈号不正确");      break; }}  //这里少了括号int *Pop(stack *s , int i ){                                                           //出栈 i为栈号    int *ret; if (empty(s,i)) {  printf("空栈");     return NULL; } else {  if(i==1){   s->top--;   ret=(int *)malloc(sizeof(int));   *ret=s->data[s->top+1];   return ret;  }  else{   s->base++;   ret=(int *)malloc(sizeof(int));   *ret=s->data[s->base-1];   return ret;  } }}void main()  //少了main,自己实现,编译通过{}追答:嗯,是的

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值