关于 队列(C语言) ——(参考算法导论)
2010-07-14 15:43
295 查看
栈和队列好像都是在一起的,呵呵。
队列是先进先出,算法导论这个解释还把这个数组弄成环了,真纠结,只写了代码,不知道用处,先放着。呵呵
而且,自己写的判断函数觉得有点问题,那个如果出错的话,怎么退出捏。。应该在主函数里面加个判断才是。懒得弄了。我觉得要是知道长度就不会溢出了。额。。
队列是先进先出,算法导论这个解释还把这个数组弄成环了,真纠结,只写了代码,不知道用处,先放着。呵呵
而且,自己写的判断函数觉得有点问题,那个如果出错的话,怎么退出捏。。应该在主函数里面加个判断才是。懒得弄了。我觉得要是知道长度就不会溢出了。额。。
#include <stdio.h> #include <stdlib.h> int head,tail,N; //N是个数 int Q[800]; int CheckEn() //判断队列是否为空 { if(head == tail) return 1; return 0; } int CheckDe() //判断队列是否已满 { if(head - tail == 1) return 1; return 0; } void EnQueue( int x) // 入队 { if( CheckDe() ) printf("Error!/n"); else { Q[tail] = x; if( tail == N) tail = 0; else tail++; } } int DeQueue() //出队 { int x; if( CheckEn() ) printf("Error!/n"); else { x = Q[head]; if( head == N) head = 0; else head++; return x; } } int main(void) { int x,temp; printf("输入数字个数N:"); scanf("%d",&N); printf("输入N个数,以0结束:/n"); while(scanf("%d",&x)!=EOF && x) { EnQueue(x); } temp = N; while( temp-- ) printf("%d ",DeQueue()); system("pause"); return 0; }
相关文章推荐
- 关于 优先队列(C语言) ——(参考算法导论)
- 关于 栈(C语言) ——(参考算法导论)
- 【算法导论】C++参考源码之堆排序中的优先级队列
- 算法导论——关于快速排序的实现(c语言实现)
- 关于堆排序(参考自算法导论)
- 【算法导论】C++参考源码之队列、二叉树
- 算法导论第六章6.5有限队列中的6.5-9课后练习
- 关于c语言中堆、栈认识的汇总(参考论坛回帖)
- 算法导论——lec 12 平摊分析与优先队列
- 循环队列的实现与分析,两种方法,算法导论10.1-4
- 【算法导论】C++参考源码之堆排序
- 算法导论之最大子数组问题 C语言实现
- 算法导论10.1-7习题解答(用两个队列实现一个栈)
- 【算法导论】C++参考源码之线性时间排序
- 算法导论10:栈链表的简化、队列的数组实现 2016.1.10
- 归并排序的c语言代码--算法导论一致
- 七大排序问题之快速排序(参考算法导论PHP版)
- 快速排序--(参考算法导论p146)
- 优先队列 算法导论 java语言
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现