<tt id="a3jom"></tt>
    1. <tt id="a3jom"><noscript id="a3jom"></noscript></tt>

        <tt id="a3jom"></tt>

        數據結構:第四章 棧與隊列

        上傳人:努力****83 文檔編號:189302315 上傳時間:2023-02-22 格式:PPT 頁數:43 大?。?36KB
        收藏 版權申訴 舉報 下載
        數據結構:第四章 棧與隊列_第1頁
        第1頁 / 共43頁
        數據結構:第四章 棧與隊列_第2頁
        第2頁 / 共43頁
        數據結構:第四章 棧與隊列_第3頁
        第3頁 / 共43頁
        資源描述:

        《數據結構:第四章 棧與隊列》由會員分享,可在線閱讀,更多相關《數據結構:第四章 棧與隊列(43頁珍藏版)》請在裝配圖網上搜索。

        1、template class Stack public:Stack(int=10);/構造函數構造函數 void Push(const Type&item);/進棧進棧 Type Pop();/出棧出棧 Type GetTop();/取棧頂元素取棧頂元素 void MakeEmpty();/置空棧置空棧 int IsEmpty()const;/判??辗衽袟?辗?int IsFull()const;/判棧滿否判棧滿否#include template class Stack public:Stack(int=10);/構造函數構造函數 Stack()delete elements;/析構函數析構

        2、函數 void Push(const Type&item);/進棧進棧 Type Pop();/出棧出棧 Type GetTop();/取棧頂元素取棧頂元素 void MakeEmpty()top=-1;/置空棧置空棧 int IsEmpty()const return top=-1;int IsFull()const return top=maxSize-1;private:int top;/棧頂數組指針棧頂數組指針 Type*elements;/棧數組棧數組 int maxSize;/棧最大容量棧最大容量template Stack:Stack(int s):top(-1),maxSize

        3、(s)elements=new TypemaxSize;assert(elements!=0);/斷言斷言進棧示例進棧示例 退棧示例退棧示例template void Stack:Push(const Type&item)assert(!IsFull();/先決條件斷言先決條件斷言 elements+top=item;/加入新元素加入新元素template Type Stack:Pop()assert(!IsEmpty();/先決條件斷言先決條件斷言 return elementstop-;/退出棧頂元素退出棧頂元素template Type stack:GetTop()assert(!IsE

        4、mpty();/先決條件斷言先決條件斷言 return elementstop;/取出棧頂元素取出棧頂元素插入新元素時的棧滿處理插入新元素時的棧滿處理 StackFull()template void Push(const int i,const Type&item)if(t i=bi+1)StackFull(i);else V+ti=item;/第i 個棧進棧template Type*Pop(const i)if(ti=bi)StackEmpty(i);return 0;else return&Vti-;/第i 個棧出棧template class Stack;template class

        5、 StackNode friend class Stack;private:Type data;/結點數據結點數據 StackNode*link;/結點鏈指針結點鏈指針 StackNode(Type d=0,StackNode *l=NULL):data(d),link(l);template class Stack public:Stack():top(NULL)Stack();void Push(const Type&item);Type Pop();Type GetTop();void MakeEmpty()top=NULL;int IsEmpty()const return top=N

        6、ULL;private:StackNode*top;/棧頂指針棧頂指針template void Stack:Stack()StackNode*p;while(top!=NULL)/逐結點回收逐結點回收 p=top;top=toplink;delete p;template void Stack:Push(const Type&item)top=new StackNode(item,top);/新結點鏈入新結點鏈入top之前之前,并成為新棧頂并成為新棧頂template Type Stack:Pop()assert(!IsEmpty();StackNode*p=top;Type retvalu

        7、e=pdata;/暫存棧頂數據暫存棧頂數據 top=toplink;/修改棧頂指針修改棧頂指針 delete p;return retvalue;/釋放釋放,返回數據返回數據template Type Stack:GetTop()assert(!IsEmpty();return topdata;template class Queue public:Queue(int=10);/構造函數構造函數 void EnQueue(const Type&item);/進隊進隊 Type DeQueue();/出隊列出隊列 Type GetFront();/取隊頭元素值取隊頭元素值 void MakeEm

        8、pty();/置空隊列置空隊列 int IsEmpty()const;/判隊列空否判隊列空否 int IsFull()const;/判隊列滿否判隊列滿否#include template class Queue public:Queue(int=10);Queue()delete elements;void EnQueue(const Type&item);Type DeQueue();Type GetFront();void MakeEmpty()front=rear=0;int IsEmpty()const return front=rear;int IsFull()const retur

        9、n(rear+1)%maxSize=front;int Length()const return(front-rear+maxSize)%maxSize;private:int rear,front;Type*elements;int maxSize;n n template Queue:Queue(int sz):front(0),rear(0),maxSize(sz)elements=new TypemaxSize;assert(elements!=0);template void Queue:EnQueue(const Type&item)assert(!IsFull();rear=(r

        10、ear+1)%MaxSize;elementsrear=item;template Type Queue:DeQueue()assert(!IsEmpty();front=(front+1)%MaxSize;return elementsfront;template Type Queue:GetFront()assert(!IsEmpty();return elementsfront;template class Queue;template class QueueNode friend class Queue;private:Type data;/隊列結點數據隊列結點數據 QueueNode

        11、*link;/結點鏈指針結點鏈指針 QueueNode(Type d=0,QueueNode *l=NULL):data(d),link(l);template class Queue public:Queue():rear(NULL),front(NULL)Queue();void EnQueue(const Type&item);Type DeQueue();Type GetFront();void MakeEmpty()front=rear=NULL;int IsEmpty()const return front=NULL;private:QueueNode*front,*rear;/隊

        12、列指針隊列指針;template void Queue:Queue()/隊列的析構函數隊列的析構函數 QueueNode*p;while(front!=NULL)/逐個結點釋放逐個結點釋放 p=front;front=frontlink;delete p;template void Queue:EnQueue(const Type&item)/將新元素將新元素item插入到隊列的隊尾插入到隊列的隊尾 if(front=NULL)front=rear=new QueueNode(item,NULL);else rear=rearlink=new QueueNode(item,NULL);temp

        13、late TypeQueue:DeQueue()/刪去隊頭結點,并返回隊頭元素的值刪去隊頭結點,并返回隊頭元素的值 assert(!IsEmpty();/判隊空的斷言判隊空的斷言 QueueNode*p=front;Type retvalue=pdata;/保存隊頭的值保存隊頭的值 front=frontlink;delete p;/新隊頭新隊頭 return retvalue;template Type Queue:GetFront()/若隊不空,則函數返回隊頭元素的值若隊不空,則函數返回隊頭元素的值;若若/隊空,則函數返回隊空,則函數返回0。assert(!IsEmpty();return

        14、 frontdata;1 1 i=1 1 2 12 1 5 5 13 1 4 6 4 14 1 51010 5 15 1 6152015 6 16 利用隊列打印二項展開式系數的程序利用隊列打印二項展開式系數的程序#include#include#include queue.hvoid YANGVI(int n)Queue q;/隊列初始化隊列初始化 q.MakeEmpty();q.EnQueue(1);q.EnQueue(1);int s=0;for(int i=1;i=n;i+)/逐行計算逐行計算 cout endl;q.EnQueue(0);for(int j=1;j=i+2;j+)/下一

        15、行下一行 int t=q.DeQueue();q.EnQueue(s+t);s=t;if(j!=i+2)cout s ;任務編號任務編號 1 2 3 4 5 優先權優先權 20 0 40 30 10 執行順序執行順序 3 1 5 4 2#include#include$include const int maxPQSize=50;/缺省元素個數缺省元素個數template class PQueue public:PQueue();PQueue()delete pqelements;void PQInsert(const Type&item);Type PQRemove();void makeE

        16、mpty()count=-1;int IsEmpty()const return count=-1;int IsFull()const return count=maxPQSize;int Length()const return count;private:Type*pqelements;/存放數組存放數組 int count;/隊列元素計數隊列元素計數 優先隊列部分成員函數的實現優先隊列部分成員函數的實現template PQueue:PQueue():count(-1)pqelements=new TypemaxPQSize;assert(pqelements!=0);/分配斷言分配斷言

        17、template void PQueue:PQInsert(const Type&item)assert(!IsFull();/判隊滿斷言判隊滿斷言 count+;pqelementscount=item;template Type PQueue:PQRemove()assert(!IsEmpty();/判隊空斷言判隊空斷言 Type min=pqelements0;int minindex=0;for(int i=1;icount;i+)/尋找最小元素尋找最小元素 if(pqelementsi min)/存于存于min min=pqelementsi;minindex=i;pqelementsminindex=pqelementscount-1;count-;/刪除刪除 return min;

        展開閱讀全文
        溫馨提示:
        1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
        2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
        3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
        4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
        5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
        6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
        7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
        關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

        網站客服QQ:2846424093或766697812

        copyright@ 2020-2023  zhuangpeitu.com 裝配圖網版權所有   聯系電話:0512-65154990  

        備案號:蘇ICP備12009002號-6   經營許可證:蘇B2-20200052  蘇公網安備:32050602011098


        本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!

        特级毛片a片全部免费播,特级毛片a片全部免费观看,特级毛片免费无码不卡观看,特级全黄a片高清视频

        <tt id="a3jom"></tt>
        1. <tt id="a3jom"><noscript id="a3jom"></noscript></tt>

            <tt id="a3jom"></tt>