資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第3章 佇列 資料結構設計與C++程式應用.

Slides:



Advertisements
Similar presentations
資料結構與演算法 課程教學投影片.
Advertisements

計算機程式語言實習課.
四資二甲 第三週作業 物件導向程式設計.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
第6章 佇列(Queues) 6-1 佇列的基礎 6-2 佇列的表示法 6-3 環狀佇列 6-4 雙佇列.
第 3 章 堆疊與佇列.
課程名稱:資料結構 授課老師:_____________
佇列 (Queue).
4.4 佇列 特徵: c b a c b d c b 新增 d 刪除 入口 入口 入口 尾端(rear) 尾端(rear) 尾端(rear)
Chap 18 類別與物件 夫有土者,有大物也。有大物者,不可以物。 物而不物,故能物物。 明乎物物者之非物也,豈獨治天下百姓而已哉!
4.1 概述 4.2 类与对象的实现 4.3 对象的初始化和析构 4.4 类的包含 4.5 类模板
Chap 3 堆疊與佇列 Stack and Queue.
刘胥影 东南大学计算机学院 面向对象程序设计1 2011~2012第3学期 刘胥影 东南大学计算机学院.
Chapter 3 鏈結串列結構 資料結構導論 - C語言實作.
Ch13 集合與泛型 物件導向程式設計(2).
串列(List) 撰寫一串列程式.
哈夫曼编码.
第六章 继承性和派生类 胡昊 南京大学计算机系软件所.
刘胥影 东南大学计算机学院 面向对象程序设计1 2010~2011第3学期 刘胥影 东南大学计算机学院.
類別樣板 Class Template 類似函式樣板 由類別樣板產生的類別稱為類別樣版的實體(instance)
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
類別(class) 類別class與物件object.
cn/~dongeliu/dsa.html 刘 东 信息学院6系 中国科学技术大学
(Circular Linked Lists)
第五章 堆疊 5-1 認識佇列 5-2 佇列的應用.
資料結構與C++程式設計進階 堆疊與佇列(Stack & Queue) 講師:林業峻 CSIE, NTU 6/ 21, 2010.
五、链 表 1、单链表 2、双向链表 3、链表应用.
Ch03 鏈結串列結構 淡江大學 周清江.
Chapter 4 堆疊和佇列 資料結構導論 - C語言實作.
學習 2019/1/12. 學習 2019/1/12 Chapter 3 鏈結串列結構 資料結構導論 - C語言實作.
資料結構使用Java 第8章 佇列(Queue).
4.1 單向鏈結串列 4.2 堆疊的加入與刪除 4.3 佇列的加入與刪除 4.4 其他型式的佇列
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Chap3 Linked List 鏈結串列.
佇列(queue) Lai Ah Fur.
二叉树和其他树 (Binary and other trees)
第三章 栈和队列.
$10 可空类型.
P2P聊天工具.
Chapter6 队列(Queues) The Abstract Data Type
Animation(動畫) 靜宜大學資工系 蔡奇偉 副教授
10 多載函數 10.1 多載概論 多載一般函數 多載成員函數 10-3
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
常宝宝 北京大学计算机科学与技术系 数据结构(三) 常宝宝 北京大学计算机科学与技术系
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
top b top a a top 空栈 a 进栈 b 进栈 top top e e e top d d d c c c b b b a a
Visual C++ Windows Programming
挑戰C++程式語言 ──第8章 進一步談字元與字串
第四章 栈和队列 栈 ( Stack ) 队列 ( Queue ) 优先队列 (Priority Queue) 小结.
進階佇列.
樣版.
第三章 数据抽象.
Chap2 Stack & Queue.
資料結構使用Java 第6章 鏈結串列(Linked List).
第九章 物件導向-進階.
陣列與結構.
第 9 章 建構函式與解構函式.
第4章 堆疊和佇列 資料結構設計與C++程式應用
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
Chapter 2 Entity-Relationship Model
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
Presentation transcript:

資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第3章 佇列 資料結構設計與C++程式應用 版權所有 禁止重製

佇列 佇列(Queue) 佇列也是一個有序串列 資料的插入和刪除分別發生在佇列結構的兩端 插入資料的一端叫做尾端(Rear),刪除資料的一端叫做前端(Front) 資料進出佇列的次序形成「先進者先出」的特性 排隊

佇列的表示法及基本運作 佇列的表示法及基本運作 1.產生佇列結構: 宣告一個陣列結構或鏈結串列結構,並設定成空佇列, 2.將資料加入佇列: 即 Front=Rear=-1 或 Front=Rear=NULL(=0)。 2.將資料加入佇列: 若佇列未滿溢,則改變Rear指標(加1)後將資料存入佇列之Rear位置。 3.從佇列刪除一個元素: 若非空佇列,則改變Front指標(加1)後將Front所指到之佇列元素刪除。 4.判斷佇列是否滿溢: 當Rear=N-1時,表示佇列滿溢。(假設陣列之大小為N, 並且資料從第0個索引開始存放)。 5.判斷是否為空佇列: 當 Front=Rear時,為空佇列。

佇列的基本運作 佇列的插入和刪除(以陣列製作)

佇列的基本運作(採用陣列結構) 定義一個佇列類別 class Queue{ private: int *data; int front; int rear; public: Queue(int size); ~Queue( ); bool empty( ); bool full(int size); void insert(int key); //放入佇列 int erase( ); //取出佇列前端資料 };

佇列的基本運作(採用陣列結構) Constructor 產生佇列 Queue :: Queue(int size) { data = new int[size]; front = -1; rear = -1; cout << "已產生一個大小為" << size << " 的佇列物件! "; } Destructor 銷毀佇列 Queue :: ~Queue( ) cout << "佇列已銷毀! " << endl;

佇列的基本運作(採用陣列結構) 判斷是否為空佇列 bool Queue :: empty(void) { return (front = = rear) ? true : false; } 判斷佇列是否滿溢 bool Queue :: full(int size) return (rear = size - 1) ? true : false;

佇列的基本運作(採用陣列結構) 將資料key 放入佇列尾端 void Queue :: insert(int key) { data[++rear] = key; } 將佇列前端的資料取出 int Queue :: erase( ) return data[++front];