| 查看: 229 | 回复: 0 | |||
1直在路上铁虫 (小有名气)
|
[求助]
出栈哪里出错了呢?最后两个函数 empty 和out_queue ,VC6.0显示出栈失败。。。。
|
|
# include <stdio.h> # include <malloc.h> # include <stdlib.h> typedef struct Queue { int*pBase; int front; int rear; }QUEUE; void init(QUEUE *pQ,int len); void en_queue(QUEUE *pQ,int num,int len); bool full_queue(QUEUE *pQ,int len); void traverse(QUEUE *pQ,int len); bool out_queue(QUEUE*pQ,int*pVal,int len); bool is_empty(QUEUE*pQ); int main (void) { QUEUE Q; int len; int i; int num; int val; printf("请输入队列长度:len = " ;scanf("%d",&len); init(&Q,len); for(i = 0; i < len-1; ++i )//入队循环 { printf("请输入第%d个要入队的元素:",i+1); scanf("%d",&num); en_queue(&Q,num,len);// 入队函数调用,想想 len 的作用 } traverse(&Q,len);// 入队后遍历 printf("\n" ;if(out_queue(&Q,&val,len)) { printf("出队成功!且出队的元素是:%d\n",val); } else { printf("出队失败!\n" ;} return 0; } void init(QUEUE *pQ,int len) { pQ->pBase = (int*)malloc(sizeof(int)*len); if (NULL == pQ->pBase) { printf("动态内存分配失败!\n" ;exit(-1); } else { pQ->front = 0; pQ->rear = 0; } return; } void en_queue(QUEUE *pQ,int num,int len) { if(full_queue(pQ,len)) { printf("队列已满!" ;} else { pQ->pBase[pQ->rear] = num; pQ->rear = (pQ->rear +1) % len; } return; } bool full_queue(QUEUE *pQ,int len) { if((pQ->rear +1)%len == pQ->front) return true; else return false; } void traverse(QUEUE *pQ,int len) { int cnt = 0; while(pQ->front != pQ->rear) { printf("%d\n",pQ->pBase[pQ->front]); pQ->front = (pQ->front +1) % len; cnt++; } printf("长度为%d的队列中实际元素的个数为:%d \n",len,cnt); return; } bool out_queue(QUEUE * pQ,int *pVal,int len) { if(is_empty(pQ)) return false; else { *pVal = pQ->pBase[pQ->front]; pQ->front = (pQ->front + 1) % len; return true; } } bool is_empty(QUEUE *pQ) { if(pQ->front == pQ->rear) return true; else return false; } |
» 猜你喜欢
聘U V热熔胶研究人员
已经有10人回复
职称评审没过,求安慰
已经有7人回复
求助文献
已经有3人回复
垃圾破二本职称评审标准
已经有10人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
三无产品还有机会吗
已经有6人回复
谈谈两天一夜的“延安行”
已经有13人回复
氨基封端PDMS和HDI反应快速固化
已经有11人回复
Applied Surface Science 这个期刊。有哪位虫友投过的能把word模板发给我参考一下嘛
已经有3人回复













;
回复此楼