用数组实现两个栈,要求最大地利用空间
来源:互联网 发布:linux rar 编辑:程序博客网 时间:2024/05/03 11:40
对于这个问题要想清楚,两个栈的栈顶分别位于数组哪里,一个位于数组尾,一个位于数组末。
#include <stdio.h>#define N 10struct DStack{int data[N];int top1;int top2; };void Push(struct DStack *Ptrs, int x, int tag) {if(Ptrs->top2-Ptrs->top1 == 1) {printf("栈满");}else {if(tag == 1)//利用tag标志来区分是对哪个栈操作Ptrs->data[++(Ptrs->top1)] = x;elsePtrs->data[--(Ptrs->top2)] = x; } }int Pop(struct DStack *Ptrs, int tag){if(tag == 1){if(Ptrs->top1 == -1) {printf("栈空");return -1;}else {return Ptrs->data[Ptrs->top1--];} }else{if(Ptrs->top2 == N) {printf("栈空");return -1;}else {return Ptrs->data[Ptrs->top2++];}}}int main() {struct DStack S;S.top1 = -1;//初始化两个栈顶 S.top2 = N;int n;scanf("%d", &n);for(int i = 0; i < n; i++){Push(&S,i+1,1);Push(&S,i+1,2); } for(int i = 0; i < n; i++) { printf("%d ",Pop(&S,1));}printf("\n");for(int i = 0; i < n; i++){printf("%d ",Pop(&S,2));}return 0;}
0 0
- 用数组实现两个栈,要求最大地利用空间
- 数据结构:请用一个数组实现两个堆栈,要求最大地利用数组空间,使 数组只要有空间入栈操作就可以成功
- 用一个数组实现两个堆栈,最大地使用数组的空间,只要有空间就能入栈成功
- 利用一个数组实现两个栈
- 某整形数组中除了两个单身整数外, 其余的整数都是成对出现的, 利用C/C++代码求出这两个单身整数。 要求: 时间复杂度o(n), 空间复杂度o(1)------某公司招聘试题
- 如果给定一个数组arr[0,...N-1],要求找出相邻两个数的最大差值
- 数组最大存放空间。。。。
- 用一个数组实现两个栈
- 用一个数组实现两个栈
- 用一个数组表示两个栈,只要数组有空间,往栈中添加元素就能成功
- 最大程度地利用您的网络资源
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- 一个数组实现两个栈
- java 匹配两个字符串中的内容
- 用作使能功能的引脚
- PAT L2-005. 集合相似度
- RTMP流媒体播放过程
- 《机器学习实战》——logistic回归
- 用数组实现两个栈,要求最大地利用空间
- 2016年蓝桥杯凑算式java版
- theano dimshuffle的使用说明
- RPC系列-初体会
- 治疗“实火”引起的急性口腔溃疡及清新口气的方法
- spring事务
- 天梯赛5-12 愿天下有情人都是失散多年的兄妹 【dfs】
- webmin脚本安装与配置
- 正则表达式——反向引用