




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
/ farmerProblem.c/ 用隊(duì)列解決農(nóng)夫過河問題#include #include typedef int DataType;/順序隊(duì)列:類型和界面函數(shù)聲明struct SeqQueue / 順序隊(duì)列類型定義 int MAXNUM; / 隊(duì)列中最大元素個(gè)數(shù) int f, r; DataType *q;typedef struct SeqQueue *PSeqQueue; / 順序隊(duì)列類型的指針類型PSeqQueue createEmptyQueue_seq(int m) /創(chuàng)建一個(gè)空隊(duì)列 PSeqQueue queue = (PSeqQueue)malloc(sizeof(struct SeqQueue); if (queue != NULL) queue-q = (DataType*)malloc(sizeof(DataType) *m); if (queue-q) queue-MAXNUM = m; queue-f = 0; queue-r = 0; return (queue); else free(queue); printf(Out of space!n); / 存儲(chǔ)分配失敗 return NULL;int isEmptyQueue_seq(PSeqQueue queue) /判斷隊(duì)列是否為空 return (queue-f = queue-r);void enQueue_seq(PSeqQueue queue, DataType x)/ 在隊(duì)尾插入元素x if (queue-r + 1) % queue-MAXNUM = queue-f) printf(Full queue.n); else queue-qqueue-r = x; queue-r = (queue-r + 1) % queue-MAXNUM; void deQueue_seq(PSeqQueue queue)/ 刪除隊(duì)列頭部元素 if (queue-f = queue-r) printf(Empty Queue.n); else queue-f = (queue-f + 1) % queue-MAXNUM;DataType frontQueue_seq(PSeqQueue queue) if (queue-f = queue-r) printf(Empty Queue.n); else return (queue-qqueue-f);/個(gè)體狀態(tài)判斷函數(shù)int farmer(int location) /判斷農(nóng)夫的位置 return (0 != (location &0x08);int wolf(int location) /判斷狼的位置 return (0 != (location &0x04);int cabbage(int location) /判斷白菜的位置 return (0 != (location &0x02);int goat(int location) /判斷羊的位置 return (0 != (location &0x01);/安全狀態(tài)的判斷函數(shù)int safe(int location) / 若狀態(tài)安全則返回true if (goat(location) = cabbage(location) & (goat(location) != farmer (location) return (0); / 羊吃白菜 if (goat(location) = wolf(location) & (goat(location) != farmer (location) return (0); / 狼吃羊 return (1); / 其他狀態(tài)是安全的main() int i, movers, location, newlocation; int route16; /用于記錄已考慮的狀態(tài)路徑 PSeqQueue moveTo; /用于記錄可以安全到達(dá)的中間狀態(tài) moveTo = createEmptyQueue_seq(20); /創(chuàng)建空隊(duì)列 enQueue_seq(moveTo, 0x00); /初始狀態(tài)進(jìn)隊(duì)列 for (i = 0; i 16; i+) routei = - 1; /準(zhǔn)備數(shù)組route初值 route0 = 0; while (!isEmptyQueue_seq(moveTo) & (route15 = - 1) location = frontQueue_seq(moveTo); /取隊(duì)頭狀態(tài)為當(dāng)前狀態(tài) deQueue_seq(moveTo); for (movers = 1; movers = 8; movers = 0; location = routelocatio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆江西省鷹潭市高三一模語文試題 含解析
- 文物古建-火災(zāi)應(yīng)急預(yù)案(3篇)
- 車間電氣火災(zāi)的應(yīng)急預(yù)案(3篇)
- 二次電纜火災(zāi)應(yīng)急預(yù)案(3篇)
- 行政法學(xué)理論指導(dǎo)試題及答案
- 商場(chǎng)電器火災(zāi)的應(yīng)急預(yù)案(3篇)
- 企業(yè)變化管理與風(fēng)險(xiǎn)防范的結(jié)合試題及答案
- 2025年前沿技術(shù)考試考題及答案
- 發(fā)生火災(zāi)處理應(yīng)急預(yù)案(3篇)
- 高考作文關(guān)于友誼與陪伴的主題及答案
- 招投標(biāo)相關(guān)知識(shí)培訓(xùn)課件
- 2025屆浙江省稽陽聯(lián)誼學(xué)校高三下學(xué)期4月二模政治試題 含解析
- 2025年北京市東城區(qū)九年級(jí)初三一模英語試卷(含答案)
- 2025年北京市東城區(qū)高三二模數(shù)學(xué)試卷(含答案)
- 首醫(yī)口腔面試真題及答案
- 門診病歷基本書寫規(guī)范
- MOOC 創(chuàng)業(yè)管理-江蘇大學(xué) 中國大學(xué)慕課答案
- (高級(jí))政工師理論考試題庫及答案(含各題型)
- 個(gè)人車位租賃合同電子版
- 煤礦自動(dòng)化(培訓(xùn))
- 肖申克的救贖 英語三分鐘演講-文檔資料
評(píng)論
0/150
提交評(píng)論