- 2
- 0
- 约4.58千字
- 约 45页
- 2016-12-23 发布于重庆
- 举报
软件基础(第3章 堆栈和队列) 软件基础讲义 电子工程系 链式队列存储结构的图示 队列的链式存储结构 12EF front 130A 12EF a1 1475 130A a2 10CB 1475 a3 ^ 10CB 10CB rear Qnode *front,*rear; Qltype *q; q-front,q-rear; 或者: Int initqueue(Qltype *q) {if ((q-front=(Qnode* )malloc(sizeof(Qnode)))==NULL) {printf(“\n申请空间失败!”); return 0;} q-rear=q-front; q-front-next=NULL; return 1; } 链队列的初始化 12EF front 12EF rear NULL * * 3.3 队列的概念及其算法 (Queue) 3.3.1队列的基本概念 3.3.2队列的顺序存储结构 3.3.3队列的链接存储结构 3.3.4队列的应用 1. 定义 队列:是只允许在一端删除,在另一端插入的线性表. 队头(front):允许删除的一端. 队尾(rear):允许插入的一端。 a2 … an-1 a1 a0 出队 入队 front rear 3.3.1.队列的定义与操作 2. 队列的基本操作 初始化 入队列 出队列 取对头元素 判队列是否非空 特性:先进先出(FIFO, First In First Out) 3.3.2.队列的顺序存储结构 a2 … an-1 a1 a0 出队 入队 front rear 1.顺序队列的c语言描述: elemtype queue[maxsize]; int front; int rear; 简单形式: typedef struct {elemtype queue[maxsize]; int front; int rear; }squeue; squeue *q; 结构体形式: front queue[maxsize] rear q q-rear q-front q-queue[0] q-queue[1] q-queue[2] … q-queue[maxlen-1] 借助C语言的算法描述使用的数据类型示意图 front rear 空队 a入队 b入队 队列入队过程 cd入队 4 3 2 1 0 4 3 2 1 0 a 4 3 2 1 0 b a 4 3 2 1 0 rear front front rear front rear a b d c 注意:入队时,front不变,rear变 g f e d c b a front rear 队满 g f e d c b front rear a出队 g f e d front rear bc出队 front rear defg出队 队列出队过程 注意:出队时,front变,rear不变 队空 进队时队尾指针先进一 rear = rear + 1, 再将新元素按 rear 指示位置加入。 出队时队头指针先进一 front = front + 1, 再将下标为 front 的元素取出。 队满时(rear =maxsize-1 )再进队将溢出出错; 队空时(rear = front )再出队将溢出出错。 front总是指向队列中第一个元素的前一个位置。 rear总是指向队列中最后元素的位置。 队列的状态 队空:条件front=rear 队满:条件rear=maxsize-1 上溢:队满时还要入队 下溢:队空时还要出队 提问:顺序队列是否会出现假队满??? 继而会出现假上溢??? 问题的提出: 初始状态 front rear b a 4 3 2 1 0 d c f入队 e入队 front rear 4 3 2 1 0 e b a d c a出队 front 4 3 2 1 0 e b a d c rear 4 3 2 1 0 front rear 队满! 上溢错 队空 入队 队满!上溢出错! 顺序队列的假溢出 rear rear a0 a1 a2 a3 rear rear rear maxlen个 front front rear a4 rear a5 front a6 rear 假溢出 如何防止和解决这个问题??? 这种现象称为假队满。 rear=maxsize-1. front≠-1 此时入队就会出现假上溢 方法1:尽可能设置较大的队列容量。 因估计不准而出错,且浪费空间。 方法2:修改出队列算法,每次出队移动剩余元素。 e d c b a front rear a出队 e d c b front rear 缺点:
您可能关注的文档
最近下载
- 2025核辐射突发事件放射性污染人员洗消流程及技术要求.docx VIP
- 2026年交管12123学法减分复习考试题库含完整答案【夺冠系列】.docx VIP
- 环境影响评价工程师之环评法律法规题库及答案(新).docx
- 《一病一讲》100讲(完结).pdf VIP
- 《精密电子焊接技术》教学课件.ppt VIP
- 中国矿业大学:地铁联络通道冻结加固技术应用研究.ppt VIP
- 2023年税务师继续教育题库及完整答案【夺冠系列】.docx
- 拯救脓毒症运动:脓毒症与脓毒性休克管理国际指南(2025年版).docx
- (高清版)DB15∕T 3487—2024 核技术利用单位辐射事故应急预案编制基本规范.pdf VIP
- 万集科技-智能交通-车路协同筑生态,智能网联拓未来.docx VIP
原创力文档

文档评论(0)