两个栈实现队列功能
2014-01-05 21:04
337 查看
用的是最简单的方法,c语言版本
#include <stdio.h> #define LMAX 128 typedef struct { unsigned char ary[LMAX]; unsigned char *top; int size; } _Stack; _Stack sa, sb; void sinit(void){ sa.top = sa.ary; sb.top = sb.ary; sa.size = 0; sb.size = 0; printf("sinit\n"); } void push(_Stack *s, unsigned char k){ if (s->size < LMAX){ *s->top++ = k; s->size++; //printf("push %c\n", k); } else printf("push error\n"); } unsigned char pop(_Stack *s){ unsigned char temp; if (s->size > 0){ temp = *--s->top; s->size--; //printf("pop %c\n", temp); return temp; } else printf("push error\n"); return 0; } void lin(unsigned char k){ push(&sa, k); } unsigned char lout(){ while(sa.size > 0){ push(&sb, pop(&sa)); } unsigned char temp = pop(&sb); while(sb.size > 0){ push(&sa, pop(&sb)); } return temp; } int main(){ sinit(); unsigned char ary[] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N' }; int t = 0; while(t < 14){ lin(ary[t]); printf("lin = %c\n", ary[t]); t++; } printf("lout = %c\n", lout()); return 0; }
相关文章推荐
- 两个栈实现队列的功能
- 利用两个栈实现队列的功能
- 使用两个堆栈实现队列功能
- 用两个栈实现一个队列的功能
- 面试题7:用两个栈实现队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入结点和在队列头部删除节点的功能。
- 两个栈实现队列的功能
- 用两个栈实现一个队列的功能?要求给出算法和思路!
- C/C++之用两个栈实现一个队列的功能
- 两个栈实现队列的功能
- 使用模板类,实现用两个栈模拟队列的功能
- 两个队列实现栈功能
- 用两个栈实现队列的功能
- 用两个栈实现一个队列的功能 && 两个队列实现一个栈的功能 && 代码实例
- 用两个栈实现一个队列的功能
- 两个栈实现一个队列功能
- PHP使用两个栈实现队列功能的方法
- 用两个堆栈实现一个列表的功能(主要是入队列和出队列)
- 两个顺序栈实现顺序队列功能
- 每日一题(33)——用两个栈实现一个队列的功能?要求给出算法和思路
- 用两个栈实现一个队列的功能