队列——链表实现
来源:互联网 发布:英译汉什么软件好 编辑:程序博客网 时间:2024/06/05 07:00
引言:
队列与栈的区别是队列是先进先出的数据结构。为了使得出入队列容易,可以引入队列头指针和队列尾指针。
分析描述:
队列的结点结构。
typedef int QElemType;typedef struct QNode{QElemTypedata;struct QNode *next;}QNode, *QueuePtr;typedef struct{QueuePtrfront;//队列的头指针QueuePtrrear;//队列的尾指针}LinkQueue;LinkQueue Q;
队列的初始化。
LinkQueue InitQueue(LinkQueue *Q){QueuePtr tmp;tmp = (QueuePtr)malloc(sizeof(QNode));if(tmp == NULL){printf("create queue error.\n");return ;}Q->front = tmp;Q->rear = Q->front;Q->front->next = NULL;return *Q;}
入队列操作。
void EnQueue(LinkQueue *Q, QElemType e){QueuePtrtmp;tmp = (QueuePtr)malloc(sizeof(QNode));if(tmp == NULL){printf("create queue error.\n");return ;}tmp->data = e;tmp->next = NULL;Q->rear->next = tmp;Q->rear = tmp;return;}
出队列操作。
void DeQueue(LinkQueue *Q, QElemType *e){QueuePtr tmp;if(Q->front == Q->rear){printf("the queue is empty.\n");return ;}tmp = Q->front->next;*e = tmp->data;Q->front->next = tmp->next;if(Q->rear == tmp)Q->rear = Q->front;free(tmp);return;}
取队列的头元素。
void GetHead(LinkQueue *Q, QElemType *e){if(Q->front == Q->rear)return;*e = Q->front->next->data;return ;}
判断队列是否为空。
int QueueEmpty(LinkQueue *Q){if(Q->front == Q->rear)return TRUE;return FALSE;}
清空队列。
void ClearQueue(LinkQueue *Q){if(Q->front == Q->rear){printf("the queue is empty.\n");return;}while(Q->front->next){Q->rear = Q->front->next->next;free(Q->front->next);Q->front = Q->front->next;}Q->front->next = NULL;Q->rear = Q->front;return;}
求队列的长度。
int QueueLength(LinkQueue Q){int length = 0;LinkQueue Tmp= Q;while(Tmp.front != Tmp.rear){length++;Tmp.front = Tmp.front->next;}return length - 1;}
0 0
- 队列——链表实现
- 队列——链表实现
- 队列的实现—由链表实现
- 链队列——队列的链式表示与实现
- 链队列——队列的链式表示和实现
- 链表实现队列
- 链表实现队列
- 链表实现队列
- 链表实现队列
- 链表实现队列
- 队列:链表实现
- 队列(二)——队列的链表实现方式
- 队列—链表与循环数组实现
- 各种实现队列的问题:链表实现,栈实现队列及队列实现栈
- 队列 —— 链队列
- 队列——链队列
- 队列 队列的数组实现及链表实现
- Java数组实现循环队列、Java链表实现队列
- 士大夫阿士大夫士大夫
- textbox 控件 OnTextChanged触发
- 在VS2005中调试JS页面
- DATAGRID 设置表的主键 添加询问“…
- 一条SQL 删除两个表中的数据
- 队列——链表实现
- 按钮不触发 RowCommand事件
- gridview 自带编辑 更新 删除 模板…
- 成本低廉的宾馆无线Wifi网络覆盖+Web认证方案
- 将a表中的某条数据的某个字段的值…
- c# 一个简单的加密解密算法
- 后台控制DIV的显示与隐藏
- gridview 手写分页
- 点击按钮实现复制文本框中的文字 …