




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機科學(xué)與工程學(xué)院《算法與數(shù)據(jù)構(gòu)造》試驗匯報(四)專業(yè)班級級3E軟件工程試驗地點8號機房學(xué)生學(xué)號指導(dǎo)教師姚峰學(xué)生姓名董婉清試驗時間-05-18試驗項目隊列的應(yīng)用試驗類別基礎(chǔ)性(√)設(shè)計性()綜合性()其他()試驗?zāi)康募耙?guī)定(1)掌握隊列的特點及其存儲措施;(2)掌握隊列的常見算法和程序?qū)崿F(xiàn)。成績評定表類別評分標(biāo)準(zhǔn)分值得分合計上機體現(xiàn)積極出勤、遵守紀(jì)律按規(guī)定完畢設(shè)計任務(wù)30分程序與匯報程序代碼規(guī)范、功能對的匯報詳實完整、體現(xiàn)收獲70分闡明:評閱教師:姚峰
日期:20年月日實驗內(nèi)容試驗內(nèi)容:火車車廂重排問題。試驗闡明:轉(zhuǎn)軌站示意圖如下:出軌出軌入軌H1H3H2火車車廂重排過程如下:出軌出軌入軌581H1H3H2963742出軌入軌58H1H3H29674321出軌入軌5H1H3H2968754321出軌入軌H1H3H2(a)將369、247依次入緩沖軌(b)將1移至出軌,234移至出軌(c)將8入緩沖軌,5移至出軌(d)將6789移至出軌火車車廂重排算法偽代碼如下:1.分別對k個隊列初始化;1.分別對k個隊列初始化;2.初始化下一種要輸出的車廂編號nowOut=1;3.依次取入軌中的每一種車廂的編號;3.1假如入軌中的車廂編號等于nowOut,則3.1.1輸出該車廂;3.1.2nowOut++;3.2否則,考察每一種緩沖軌隊列for(j=1;j<=k;j++)3.2.1取隊列j的隊頭元素c;3.2.2假如c=nowOut,則3.2.2.1將隊列j的隊頭元素出隊并輸出;3.2.2.2nowOut++;3.3假如入軌和緩沖軌的隊頭元素沒有編號為nowOut的車廂,則3.3.1求不不小于入軌中第一種車廂編號的最大隊尾元素所在隊列編號j;3.3.2假如j存在,則把入軌中的第一種車廂移至緩沖軌j;3.3.3假如j不存在,但有多出一種空緩沖軌,則把入軌中的第一種車廂移至一種空緩沖結(jié)束3.3.2假如j不存在,但有多于一種空緩沖軌,則把入軌中的第一種車廂移至一種空緩沖軌;否則車廂無法重排,算法結(jié)束;#include<stdlib.h>#include<iostream>usingnamespacestd;structNode{intdata;Node*next;};//LinkQueue.hclassLinkQueue{private:Node*first,*rear;public:LinkQueue();~LinkQueue();voidEnQueue(int);intDeQueue();intGetQueue_head();intGetQueue_rear();intVide_Queue();voidPrint_Queue();};//LinkQueue.cppLinkQueue::LinkQueue()//無T慘¨°構(gòu)1造¨?函?¥數(shù)oy{Node*s=newNode;s->next=NULL;first=rear=s;}LinkQueue::~LinkQueue()//析?構(gòu)1函?¥數(shù)oy釋o¨a放¤?空?間?{while(first){Node*p;p=first->next;deletefirst;first=p;}}voidLinkQueue::EnQueue(intx)//隊¨?尾2入¨?隊¨?{Node*s=newNode;s->data=x;s->next=NULL;rear->next=s;rear=s;}intLinkQueue::DeQueue()//隊¨?頭a?¤出?隊¨?{intx;x=first->next->data;Node*p=first->next;first->next=p->next;if(p->next==NULL)rear=first;deletep;returnx;}intLinkQueue::GetQueue_head()//取¨?得ì?隊¨?列¢D第ì¨2一°?個?元a素?的ì?數(shù)oy據(jù)Y{if(first!=rear)return(first->next->data);}intLinkQueue::GetQueue_rear()//取¨?得ì?隊¨?列¢D最á?后¨?一°?個?元a素?的ì?數(shù)oy據(jù)Y{if(first!=rear)return(rear->data);}intLinkQueue::Vide_Queue()//判D斷?隊¨?列¢D是o?否¤?為a空?,ê?若¨?為a空?返¤|ì回?0,ê?若¨?不?為a空?返¤|ì回?1{if(first==rear)return0;elsereturn1;}voidLinkQueue::Print_Queue()//輸o?出?隊¨?列¢D中D所¨′有?D元a素?{Node*p=first->next;while(p){cout<<p->data<<"";p=p->next;}}constintk=3;//假¨′設(shè)|¨¨有?D三¨y個?緩o沖?軌¨?intTrainMain(){LinkQueueQ[k];//k個?緩o沖?軌¨?LinkQueueA;//入¨?軌¨?LinkQueueC;//出?軌¨?cout<<"請?輸o?入¨?1~9:"<<endl;intx;for(inti=0;i<9;i++){cin>>x;A.EnQueue(x);//入¨?隊¨?}cout<<"入¨?軌¨?中D的ì?車|ì廂¨¢序¨°列¢D如¨?下?:"<<endl;A.Print_Queue();//輸o?出?入¨?軌¨?中D的ì?車|ì廂¨¢序¨°列¢Dcout<<endl;intnowOut=1;//初?始o(jì)?化?¥下?一°?個?要°a輸o?出?的ì?車|ì廂¨¢編ਤ號?nowOut=1while(nowOut!=10){inttemp=nowOut;if(A.GetQueue_head()==nowOut)//如¨?果?入¨?軌¨?A中D的ì?頭a?¤車|ì廂¨¢等쨨于?¨2nowOut,ê?就¨a直?à接¨?輸o?出?該?車|ì廂¨¢,ê?把??該?車|ì廂¨¢放¤?入¨?出?軌¨?C{A.DeQueue();cout<<"A:";A.Print_Queue();cout<<endl;C.EnQueue(nowOut);cout<<"C:";C.Print_Queue();cout<<endl;nowOut++;continue;}else//否¤?則¨°考?察¨?每?一°?個?緩o沖?軌¨?隊¨?列¢D{for(inti=0;i<k;i++){if((Q[i].Vide_Queue()==1)&&(Q[i].GetQueue_head()==nowOut))//如¨?果?第ì¨2i個?緩o沖?軌¨?中D頭a?¤車|ì廂¨¢等쨨于?¨2nowOut,ê?就¨a直?à接¨?輸o?出?該?車|ì廂¨¢,ê?把??該?車|ì廂¨¢放¤?入¨?出?軌¨?C{Q[i].DeQueue();cout<<"Q["<<i<<"]:";Q[i].Print_Queue();cout<<endl;C.EnQueue(nowOut);cout<<"C:";C.Print_Queue();cout<<endl;nowOut++;continue;}}}if(temp==nowOut)//如¨?果?nowOut沒?有?D發(fā)¤?é生|¨2變à?化?¥說|ì明??前??兩¢?種?情¨|況?都?沒?有?D發(fā)¤?é生|¨2,ê?只?好?開a始o(jì)?第ì¨2三¨y種?情¨|況?的ì?判D斷?{inty=A.GetQueue_head();intnum=-1;intmax=0;for(inti=0;i<k;i++)//求¨?小?于?¨2入¨?軌¨?中D第ì¨2一°?個?車|ì廂¨¢編ਤ號?的ì?最á?大?¨?隊¨?尾2元a素?所¨′在¨2隊¨?列¢D編ਤ號?i{if((Q[i].Vide_Queue()==1)&&(Q[i].GetQueue_rear()<y)&&(max<Q[i].GetQueue_rear())){max=Q[i].GetQueue_rear();num=i;}}if(num!=-1)//如¨?果?找¨°到ì?該?編ਤ號?i的ì?緩o沖?軌¨?則¨°把??入¨?軌¨?A中D頭a?¤車|ì廂¨¢放¤?入¨?第ì¨2i號?緩o沖?軌¨?中D{A.DeQueue();cout<<"A:";A.Print_Queue();cout<<endl;Q[num].EnQueue(y);cout<<"Q["<<num<<"]:";Q[num].Print_Queue();cout<<endl;continue;}else//否¤?則¨°,ê?判D斷?是o?否¤?有?D緩o沖?軌¨?為a空?,ê?如¨?有?D空?緩o沖?軌¨?,ê?把??入¨?軌¨?A的ì?頭a?¤車|ì廂¨¢放¤?入¨?空?緩o沖?軌¨?中D{for(inti=0;i<k;i++){if(Q[i].Vide_Queue()==0){A.DeQueue();cout<<"A:";A.Print_Queue();cout<<endl;Q[i].EnQueue(y);cout<<"Q["<<i<<"]:";Q[i].Print_Queue();cout<<endl;continue;}}}return-1;//如¨?果?以°?上|?所¨′有?D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 7436:2024 EN Fasteners - Slotted set screws with cup point
- 2025年度二手房買賣交易合同(附帶房屋抵押權(quán)解除及貸款還款計劃)
- 2025年度新能源項目安全生產(chǎn)責(zé)任書匯編
- 2025年度科技創(chuàng)新項目資金擔(dān)保合同
- 2025年高科技車間承包服務(wù)協(xié)議
- 2025年度社區(qū)配套車位代理銷售服務(wù)合同
- 傳統(tǒng)藝術(shù)與現(xiàn)代美術(shù)課程融合計劃
- 如何進(jìn)行有效的課堂觀察計劃
- 提升自我管理能力的策略計劃
- 關(guān)注員工個人發(fā)展的措施計劃
- 班級管理(課件).ppt
- 秋裝校服供貨售后保障方案
- 惡性腫瘤化療后重度骨髓抑制病人的護理論文
- cmu200_中文使用詳細(xì)說明
- 英語句子成分結(jié)構(gòu)講解
- 注塑參數(shù)DOE分析范例
- 綜合布線類項目施工圖解(共21頁)
- 圓錐曲線方程復(fù)習(xí)
- 《地質(zhì)災(zāi)害防治知識》PPT課件.ppt
- 招生代理合作協(xié)議書
- (完整版)初中地理課程標(biāo)準(zhǔn)-人教版
評論
0/150
提交評論