第3章堆栈与队列(II).pptVIP

  • 2
  • 0
  • 约5.78千字
  • 约 25页
  • 2016-08-21 发布于重庆
  • 举报
第3章堆栈与队列(II)

Data Structure Chapter 3: Stack Queue chapter 3: Stack Queue 《Data Structure》 College of Science, Xidian University 第三章 堆栈与队列 (II) 西安电子科技大学·理学院 hjTang@xidian.edu.cn 两种操作受限的线性表 堆栈(FILO) 插入、删除、获取元素只能从线性表的一端进行 队列(FIFO) 插入只能从线性表的一端进行 删除、获取元素的值只能从线性表另一端进行 队头(front) 队尾(rear) 队长 空队 入队(enqueue) 出队(dequeue) 取队头(front) 队列上进行的基本操作 队列的三种操作 入队(enqueue) 出队(dequeue) 取队头 链队的设计 节点 头节点 链队 CreateQueue Enqueue 入队与出队 取队头、队尾 顺序队列 循环队列 循环队列的队空、队满 队空 front=rear 队长=1 队长=2 队长=N front=rear 队空? 队满? 队满、队长 解决思路 永远不添满队列 留一个空 队空 front == rear 队满 (rear +1)(% N) == front rear+1 == front (% N) 队长的计算 队列长度 rear-front (rear-front)%N (rear-front+N)%N 队列应用举例 求迷宫的最短路径:现要求设计一个算法找一条从迷宫入口到出口的最短路径 基本思想: 从迷宫入口点(1,1)出发,向四周搜索,记下所有一步能到达的坐标点;然后依次再从这些点出发,再记下所有一步能到达的坐标点,…,依此类推,直到到达迷宫的出口点(m,n)为止,然后从出口点沿搜索路径回溯直至入口。这样就找到了一条迷宫的最短路径,否则迷宫无路径。 演算过程 算法 离散事件仿真(多线程) 用多线程程序模拟银行交易模型 某银行有三个服务窗口 每个窗口内有一个服务员 每个窗口前最多可以供N个人排队 客户随机达到,且客户选择排队的原则是: 随机选择一个队列排队(选择人数最少的队) 排队后不能换队,也不能半路退出 每个客户的服务时间是随机的,但在[1, 10]分钟内均匀分布 三个线程 数据结构 * * * * 允许! 禁止! 禁止! 插入允许 删除禁止 插入禁止 删除允许 读取允许 禁止! 禁止! 队尾 队头 出队列 入队列 ⑴ 队列初始化:Init_Queue(q) 初始条件: 队q不存在。 操作结果: 构造了一个空队。 ⑵ 入队操作: En_Queue(q,x), 初始条件: 队q存在。 操作结果: 对已存在的队列q,插入一个元素x到队尾,队发生变化。 ⑶ 出队操作: De_Queue(q,x) 初始条件: 队q存在且非空 操作结果: 删除队首元素,并返回其值,队发生变化。 ⑷ 读队头元素:Front_Queue(q,x) 初始条件: 队q存在且非空 操作结果: 读队头元素,并返回其值,队不变; ⑸ 判队空操作:Empty_Queue(q) 初始条件: 队q存在 操作结果: 若q为空队则返回为1,否则返回为0。 green red blue rear front green red blue rear front Enqueue green red blue rear front green red blue rear front Dequeue green red blue rear front red Queue front green red blue rear front data next 4 front rear count red green blue red ^ typedef int ElemType; struct QueueNode{ ElemType data; QueueNode *next; }; struct ListQueue { QueueNode *front; QueueNode *rear; int count; }; 4 front rear count ? ? ? rear front count ^ ^ 0 rear front count Create ^ ^ 0 rear front count 1 rear front count ^ red data next Enqueue red 2 rear front count red data next Enqueue 1 rear front count ^ red data next ^ blue data next blue 1 rear

文档评论(0)

1亿VIP精品文档

相关文档