数据结构之栈和队列---队列的基本操作
来源:互联网 发布:疯狂安卓讲义源码 编辑:程序博客网 时间:2024/04/28 22:35
问题:实现队列的基本操作,内容包括队列的结构体,队列的初始化,队列的销毁,进队操作及出队操作
//队列节点的结构体
typedef struct QNode {ElemType data;struct QNode *next;}QNode, *QPoint;
//队列链的结构体
typedef struct LinkQueue{QPoint front;QPoint rear;}LinkQueue;
//队列的初始化
//lq->front分配空间时,类型为QPoint,但大小为QNode,不要把大小写成QPoint
LinkQueue* InitQueue(){LinkQueue *lq;lq = (LinkQueue *)malloc(sizeof(LinkQueue));lq->front = (QPoint)malloc(sizeof(QNode));lq->rear = lq->front;return lq;}
//队列的销毁
void DestroyQueue(LinkQueue *lq){while (lq->front){lq->rear = lq->front->next;free(lq->front);lq->front = lq->rear;}free(lq);}
//进队操作
//队首不存放元素
void EnQueue(LinkQueue *lq, ElemType elem){QPoint qn = (QPoint)malloc(sizeof(QNode));qn->data = elem;qn->next = NULL;lq->rear->next = qn;lq->rear = qn;}
//出队操作
int DeQueue(LinkQueue *lq, ElemType *elem){QPoint tp;tp = lq->front->next;if(tp==NULL){printf("队列为空\n");return -1;}*elem = tp->data;lq->front->next = tp->next;
<span style="white-space:pre"></span>if(lq->rear==tp)<span style="white-space:pre"></span>lq->rear = lq->front;free(tp);return 0;}
0 0
- 数据结构之栈和队列---队列的基本操作
- 数据结构之栈和队列---栈的基本操作
- 数据结构->栈和队列的基本操作
- “栈和队列”之队列--基本数据结构
- 栈和队列算法三之队列的基本操作
- PHP数据结构之七_队列的链式存储和队列的基本操作
- 数据结构队列的基本操作
- 数据结构 队列的基本操作
- 【数据结构】 队列的基本操作
- 【数据结构】队列的基本操作
- [数据结构]队列的基本操作
- 队列的基本操作 数据结构
- 基本数据结构之栈和队列
- 栈和队列算法一之栈的基本操作
- 数据结构之链表队列基本操作
- 基本数据结构之队列
- 基本数据结构之队列
- 基本数据结构之队列
- 内存溢出--java.lang.OutOfMemoryError: PermGen space
- 个人的spring配置的简单记录
- Java基础11——网络编程
- iOS开发最常用的第三方库
- 读Spring的源代码七:spring.handlers的加载过程
- 数据结构之栈和队列---队列的基本操作
- poj 1321:棋盘问题
- oracle 创建用户
- Swift学习之路01-基础类型
- 【控件】UISegmentedControl的简单创建
- 《Excel 2010 SQL完全应用》学习笔记之一:SQL常见函数的使用(续)
- 【Objective-C编程】深入浅出字符串NSString
- kvm配置桥接网卡
- debug调试