在这里插入代码片
//如何建立一个新的栈
Stack CreateStack(int MaxSize){
Stack stk=(Stack)malloc(sizeof(struct SNode));
//如何申请数组
stk->Data=(ElementType*)malloc(sizeof(ElementType)*MaxSize);
stk->MaxSize=MaxSize;
stk->Top1=-1;
stk->Top2=MaxSize;
return stk;
}
bool Push(Stack s,ElementType x,int Tag){
if(s->Top2-s->Top1==1){
printf("Stack Full\n");
return false;
}
switch(Tag){//注意break的位置
case 1:s->Data[++s->Top1]=x;return true;break;
case 2:s->Data[--s->Top2]=x;return true;
}
}
ElementType Pop(Stack s,int Tag){
switch(Tag){
case 1:
if(s->Top1==-1){
printf("Stack %d Empty\n",Tag);
return ERROR;
}
return s->Data[s->Top1--];
case 2:
if(s->Top2==s->MaxSize){
printf("Stack %d Empty\n",Tag);
return ERROR;
}
return s->Data[s->Top2++];
}
}
小白鼠666
发布了94 篇原创文章 · 获赞 0 · 访问量 498
私信
关注
相关文章
- 11-22在一个数组中实现两个堆栈
- 11-22编写一个函数taxis() 实现数组的排序,在函数中调用swap()实现两个数的交换。 打印出排序结果。
- 11-22顺序堆栈和链式堆栈的实现,用一个数组实现两个堆栈的例子
- 11-22在一个数组中实现两个堆栈
- 11-22数据结构/PTA-在一个数组中实现两个堆栈/函数
- 11-226-7 在一个数组中实现两个堆栈 (20分)
- 11-22编写一个类Shape,声明计算图形面积的方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。
- 11-22编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 11-22偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。
- 11-22《剑指Offer》第1题(Java实现):在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。