《数据结构》复习笔记--队列
2015-01-16 20:03
316 查看
队列 维基百科:
队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。
队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/28/dc43464fada8fab392bb547f313bc083)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/28/49a2dafc4e39d2709a1421c2df0e7f6a)
队列的顺序存储:
通常由一个一维数组和一个记录队列头元素位置的变量front以及一个记录队列尾元素位置的变量rear组成。
队列的链式存储结构:
队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。
队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。
队列的顺序存储:
通常由一个一维数组和一个记录队列头元素位置的变量front以及一个记录队列尾元素位置的变量rear组成。
#define Maxsize <储存数据元素的最大个数> typedef struct { ElementType Data[Maxsize]; int rear; int front; } Queue; void AddQ( Queue *PtrQ, ElementType item)//入队列 { if ( (PtrQ->rear+1) % MaxSize == PtrQ->front ) { printf(“队列满”); return; } PtrQ->rear = (PtrQ->rear+1)% MaxSize; PtrQ->Data[PtrQ->rear] = item; } ElementType DeleteQ ( Queue *PtrQ )//出队列 { if ( PtrQ->front == PtrQ->rear ) { printf(“队列空”); return ERROR; } else { PtrQ->front = (PtrQ->front+1)% MaxSize; return PtrQ->Data[PtrQ->front]; } }
队列的链式存储结构:
typedef struct Node { ElementType Data; struct Node *Next; } QNode; typedef struct /* 链队列结构 */ { QNode *rear; /* 指向队尾结点 */ QNode *front; /* 指向队头结点 */ } LinkQueue; LinkQueue *PtrQ ; //不带头结点的链式队列出队操作的一个示例: ElementType DeleteQ ( LinkQueue *PtrQ ) { Qnode *FrontCell; ElementType FrontElem; if ( PtrQ->front == NULL) { printf(“队列空”); return ERROR; } FrontCell = PtrQ->front; if ( PtrQ->front == PtrQ->rear) /* 若队列只有一个元素 */ PtrQ->front = PtrQ->rear = NULL; /* 删除后队列置为空 */ else PtrQ->front = PtrQ->front->Next; FrontElem = FrontCell->Data; free( FrontCell ); /* 释放被删除结点空间 */ return FrontElem; }
相关文章推荐
- 【郝斌数据结构自学笔记】57-59_递归8 _ 汉诺塔_1线性结构总复习 2线性结构和非线性结构关系 3栈队列链表数组之间的关系【重点】
- 数据结构复习笔记二:栈与队列
- 数据结构复习笔记— —队列
- Python笔记——几种数据结构的实现:栈、队列及二叉树
- 数据结构学习笔记 --- 队列(链队列)
- 复习 [数据结构] ---- 栈和队列
- 数据结构笔记5 队列
- 数据结构复习笔记(5)
- 一步一步复习数据结构和算法基础-链式队列
- 数据结构复习笔记
- 数据结构复习之[循环队列]
- 数据结构复习之【队列】
- 数据结构复习笔记(1)
- 数据结构复习之【队列】
- 一步一步复习数据结构和算法基础-栈和队列(1)
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- 数据结构复习笔记(5)
- 数据结构复习笔记(3)
- 数据结构学习笔记——栈和队列
- 数据结构学习笔记 --- 栈、队列 (习题)