数组实现的简单循环队列
2013-07-24 22:20
453 查看
#include <stdio.h> #include <stdlib.h> //设计一个队列的类型 typedef int Item; struct queue { Item * head; Item * tail; int lenth; int size; }; void deletes(struct queue *que); void insert(struct queue *que,Item k); void prin(struct queue* que); Item * add; int main(void) { //initialize the queue int arr[5]; Item n[5]={1,2,3,4,5}; Item a=10; struct queue *que; que=(struct queue*)malloc(sizeof(struct queue)); add=&arr[0]; que->tail=que->head =&arr[0]; que->size =0; que->lenth =5; for(int i=0;i<5;i++) insert(que,n[i]);//add an item prin(que); //print the queue deletes(que);//delete an item from the head prin(que); insert(que,a); prin(que); deletes(que); prin(que); insert(que,a); prin(que); insert(que,a); prin(que); return 0; } void deletes(struct queue *que) { printf("delete an item:%d\n",*(que->head)); (que->head)++; (que->size)--; } void insert(struct queue * que,Item k) { printf("insert an item: %d into the queue\n",k); if(que->size==que->lenth ) { printf("queue is full so that can not add an item\n"); exit(1); } *(que->tail )=k; (que->tail )++; (que->size )++; if(que->size==que->lenth ) printf("queue is full\n"); if(que->tail ==(add+que->lenth )) que->tail = add; } void prin(struct queue* que) { printf("print all of items in the queue:\n"); Item *ss; ss=que->head ; do { printf("%d,",*(ss)); ss++; if((ss)==(add +que->lenth )) ss =add ; }while(ss!=que->tail); printf("\n"); }
相关文章推荐
- 简单循环队列模版(数组实现)
- 简单队列和循环队列的实现--数组实现
- 简单的双线程数组循环队列缓冲区的实现
- 数据结构学习之路(四)用数组简单实现循环队列
- 队列--基于简单循环数组实现(Java)
- c语言用简单数组实现循环队列
- 队列的顺序实现(循环数组)与链式实现
- 简单数据结构的实现之循环队列
- wait, notify, notifyAll, 简单数组模拟队列实现读者写者问题。
- 数组实现简单的队列
- java队列的循环数组实现
- 无锁队列的实现-循环数组
- 队列的数组实现(循环队列)
- 基于链表、数组实现队列、循环队列
- 用数组实现循环队列(C实现)
- 数据结构循环队列——数组模拟实现
- 队列的循环数组实现
- c循环队列简单实现
- javascript中利用数组实现的循环队列
- 用C语言实现简单循环队列结构