生活随笔
收集整理的這篇文章主要介紹了
链队 尹成
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://blog.csdn.net/itcastcpp/article/details/39271691
?今天,我們一起用C++寫一個鏈對,具體如下所示。
LinkQueue.h具體內容如下:
[cpp]?view plain
?copy #include?"QueueNode.h"?? template<typename?Type>?class?LinkQueue{?? public:?? ????LinkQueue()?:m_prear(NULL),?m_pfront(NULL){}?? ????~LinkQueue(){?? ????????MakeEmpty();?? ????}?? ????void?Append(const?Type?item);????? ????Type?Delete();???????????????????? ????Type?GetFront();?????????????????? ????void?MakeEmpty();????????????????? ????void?Print();????????????????????? ?? ????bool?IsEmpty()?const{?? ????????return?m_pfront?==?NULL;?? ????}?? ?? private:?? ????QueueNode<Type>?*m_prear,?*m_pfront;?? };?? ?? template<typename?Type>?void?LinkQueue<Type>::MakeEmpty(){?? ????QueueNode<Type>?*pdel;?? ????while?(m_pfront){?? ????????pdel?=?m_pfront;?? ????????m_pfront?=?m_pfront->m_pnext;?? ????????delete?pdel;?? ????}?? }?? ?? template<typename?Type>?void?LinkQueue<Type>::Append(const?Type?item){?? ????if?(m_pfront?==?NULL){?? ????????m_pfront?=?m_prear?=?new?QueueNode<Type>(item);?? ????}?? ????else{?? ????????m_prear?=?m_prear->m_pnext?=?new?QueueNode<Type>(item);?? ????}?? }?? ?? template<typename?Type>?Type?LinkQueue<Type>::Delete(){?? ????if?(IsEmpty()){?? ????????cout?<<?"There?is?no?element!"?<<?endl;?? ????????exit(1);?? ????}?? ????QueueNode<Type>?*pdel?=?m_pfront;?? ????Type?temp?=?m_pfront->m_data;?? ????m_pfront?=?m_pfront->m_pnext;?? ????delete?pdel;?? ????return?temp;?? }?? ?? template<typename?Type>?Type?LinkQueue<Type>::GetFront(){?? ????if?(IsEmpty()){?? ????????cout?<<?"There?is?no?element!"?<<?endl;?? ????????exit(1);?? ????}?? ????return?m_pfront->m_data;?? }?? ?? template<typename?Type>?void?LinkQueue<Type>::Print(){?? ????QueueNode<Type>?*pmove?=?m_pfront;?? ????cout?<<?"front";?? ????while?(pmove){?? ????????cout?<<?"--->"?<<?pmove->m_data;?? ????????pmove?=?pmove->m_pnext;?? ????}?? ????cout?<<?"--->rear"?<<?endl?<<?endl?<<?endl;?? }??
QueueNode.h具體內容如下:
[cpp]?view plain
?copy template<typename?Type>?class?LinkQueue;?? ?? template<typename?Type>??? class?QueueNode?? {?? private:?? ????friend?class?LinkQueue?<?Type?>?;?? ????QueueNode(const?Type?item,?QueueNode<Type>?*next?=?NULL)?? ????????:m_data(item),?m_pnext(next){}?? private:?? ????Type?m_data;?? ????QueueNode<Type>?*m_pnext;?? };??
main.cpp具體內容如下:
[cpp]?view plain
?copy #include?<iostream>?? using?namespace?std;?? #include?"LinkQueue.h"?? int?main(){?? ????LinkQueue<int>?queue;?? ????int?init[10]?=?{?1,?3,?6,?8,?9,?2,?0,?5,?4,?7?};?? ????for?(int?i?=?0;?i?<?10;?i++){?? ????????queue.Append(init[i]);?? ????}?? ????queue.Print();?? ????queue.Delete();?? ????queue.Print();?? ????cout?<<?queue.GetFront()?<<?endl;?? ????queue.Print();?? ????queue.MakeEmpty();?? ????queue.Print();?? ????queue.Delete();?? ????cin.get();?? ????return?0;?? }??
運行效果如圖1所示:
圖1?運行效果
總結
以上是生活随笔為你收集整理的链队 尹成的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。