基于visual Studio2013解决算法导论之022队列实现(基于链表)
来源:互联网 发布:好办软件是什么 编辑:程序博客网 时间:2024/05/29 16:29
题目
基于链表的队列实现
解决代码及点评
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <malloc.h>#include<assert.h>typedef struct QNode{int nValue;struct QNode *pNext;}QNode, *PQNode;typedef struct {PQNode pHead;PQNode pTail;}LinkQueue;void Create(LinkQueue *pLink){PQNode pTmp = (PQNode)malloc(sizeof(QNode));pLink->pHead = pLink->pTail = pTmp;if (pLink == NULL){exit(0);}pLink->pHead->pNext = NULL;pLink->pHead->nValue = 0;}void EnQueue(LinkQueue *pLink, int nValue){PQNode pTmp = (PQNode)malloc(sizeof(QNode));pTmp->nValue = nValue;pTmp->pNext = NULL;pLink->pTail->pNext = pTmp;pLink->pTail = pTmp;}int DeQueue(LinkQueue *pLink){if (pLink->pHead == pLink->pTail){//队列为空printf("队列为空,无法出队!\n");}PQNode pTmp = pLink->pHead->pNext;pLink->pHead->pNext = pTmp->pNext;if (pLink->pTail == pTmp){//若队列中只有一个元素,则出队后要修改队尾指针pLink->pTail = pLink->pHead;}int nValue = pTmp->nValue;free(pTmp);pTmp = NULL;return nValue;}bool IsEmpty(LinkQueue *pLink){return pLink->pHead == pLink->pTail;}void DestroyQueue(LinkQueue *pLink){while (pLink->pHead != NULL){pLink->pTail = pLink->pHead->pNext;free(pLink->pHead);pLink->pHead = pLink->pTail;}}int main(){LinkQueue *pLink = (LinkQueue *)malloc(sizeof(LinkQueue));Create(pLink);int i;for (i = 0; i < 10; i++){EnQueue(pLink, i);}for (i = 0; i < 10; i++){printf("%d ", DeQueue(pLink));}DestroyQueue(pLink);system("pause");return 0;}
代码下载及其运行
代码下载地址:http://download.csdn.net/detail/yincheng01/6858815
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果
0 0
- 基于visual Studio2013解决算法导论之022队列实现(基于链表)
- 基于visual Studio2013解决算法导论之023队列实现(基于数组)
- 基于visual Studio2013解决算法导论之018栈实现(基于链表)
- 基于visual Studio2013解决算法导论之007优先队列(堆实现)
- 基于visual Studio2013解决算法导论之024双向链表实现
- 基于visual Studio2013解决算法导论之019栈实现(基于数组)
- 基于visual Studio2013解决算法导论之027hash表
- 基于visual Studio2013解决算法导论之021单向循环链表
- 基于visual Studio2013解决算法导论之025双向循环链表
- 基于visual Studio2013解决算法导论之001插入排序
- 基于visual Studio2013解决算法导论之002归并排序
- 基于visual Studio2013解决算法导论之003雇佣问题
- 基于visual Studio2013解决算法导论之012计数排序
- 基于visual Studio2013解决算法导论之013基数排序
- 基于visual Studio2013解决算法导论之020单链表
- 基于visual Studio2013解决算法导论之026二叉树
- 基于visual Studio2013解决算法导论之042单源最短路径
- 基于visual Studio2013解决算法导论之047赫夫曼编码
- 这篇好文,一定要定时读一读!
- uva 133 - The Dole Queue
- 字符串中删除指定的字符的理解
- SharePoint 2013 本地创建解决方案
- CSS布局的25个技巧
- 基于visual Studio2013解决算法导论之022队列实现(基于链表)
- 将字符串数字格式化为样式1,000,000,000
- 在CentOS 6.3中安装与配置SVN的方法
- POJ2299 树状数组+离散化
- 《因为痛,所以叫青春》感
- md5加密
- C指针原理(60)-Ncurses-文本终端的图形
- ARM基础部分解答题
- 多种js刷新页面的方法