链队列存储结构及常见操作

链队列存储结构及常见操作

ID:39585026

大小:36.00 KB

页数:8页

时间:2019-07-06

链队列存储结构及常见操作_第1页
链队列存储结构及常见操作_第2页
链队列存储结构及常见操作_第3页
链队列存储结构及常见操作_第4页
链队列存储结构及常见操作_第5页
资源描述:

《链队列存储结构及常见操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、/*~~~~~~~~~~~~~~~~~~~链队列存储结构及常见操作(lkqueue.c)~~~~~~~~~~~~~*/#ifndef__LINKQUEUE__#define__LINKQUEUE__#include/*链队列存储结构类型定义*/typedefstructlkqenode{QueueDTdata;structlkqenode*next;}QNode,*QLink;typedefstruct{//QLinkfront;QLinkrear;intlen;}LinkQueue;/*链队列初始化*/vo

2、idQueueInitialize(LinkQueue*pQ){pQ->rear=(QLink)malloc(sizeof(QNode));if(!pQ->rear)exit(EXIT_FAILURE);pQ->rear->next=pQ->rear;pQ->len=0;}/*求链队列长度*/intQueueLen(LinkQueueQ){returnQ.len;}/*判断链队列是否为空*/BOOLQueueEmpty(LinkQueueQ){/*也可用:returnQ.rear==Q.rear->next?TRUE:FALSE

3、;*/return0==Q.len?TRUE:FALSE;}/*链队列入队列操作*/voidEnQueue(LinkQueue*pQ,QueueDTd){QLinkp;p=(QLink)malloc(sizeof(QNode));if(!p)exit(EXIT_FAILURE);p->data=d;p->next=pQ->rear->next;//1pQ->rear->next=p;//2pQ->rear=p;//3pQ->len++;//4}/*链队列出队列操作*/BOOLDeQueue(LinkQueue*pQ,QueueD

4、T*pd){BOOLflg=TRUE;QLinkp,front;if(QueueEmpty(*pQ))flg=FALSE;else{front=pQ->rear->next;p=front->next;front->next=p->next;*pd=p->data;if(pQ->rear==p)pQ->rear=front;free(p);pQ->len--;}returnflg;}/*取链队列队首元素*/BOOLQueueHead(LinkQueueQ,QueueDT*pd){BOOLflg=TRUE;if(QueueEmpt

5、y(Q))flg=FALSE;else*pd=Q.rear->next->next->data;returnflg;}/*清空链队列*/voidQueueClear(LinkQueue*pQ){QLinkp,q,head;if(pQ->len>0){head=pQ->rear->next;pQ->rear=head;p=head->next;head->next=head;pQ->len=0;while(p!=head){q=p;p=p->next;free(q);}}}/*销毁链队列*/voidQueueDestroy(Lin

6、kQueueQ){QueueClear(&Q);free(Q.rear);}#endif/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*//*建议性测试用程序*/typedefenum{TRUE=1,FALSE=0}BOOL;typedefintQueueDT;#include"lkqueue.c"#defineN10voidmain(){inti;QueueDTd,a[N]={0,1,2,3,4,5,6,7,8,9};LinkQueuequeue;Qu

7、eueInitialize(&queue);printf("EnQueue:");for(i=0;i

8、3d",d);}printf("Queueis%s.",QueueEmpty(queue)?"empty":"notempty");QueueDestroy(queue);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。