資料結構 猴子分桃

2022-07-09 06:09:04 字數 1068 閱讀 1867

設計題目: 猴子分桃

動物園裡的n 只猴子編號為1,2,…,n,依次排成一隊等待飼養員按規則分桃。動物園的分桃規則是每只猴子可分得m個桃子,但必須排隊領取。飼養員迴圈地每次取出1 個,2 個,…,k個桃放入筐中,由排在隊首的猴子領取。

取到筐中的桃子數為k 後,又重新從 1 開始。當筐中桃子數加上隊首猴子已取得的桃子數不超過m 時,隊首的猴子可以全部取出筐中桃子。取得桃子總數不足m個的猴子,繼續到隊尾排隊等候。

當筐中桃子數加上隊首猴子已取得的桃子數超過m 時,隊首的猴子只能取滿m個,然後離開佇列,筐中剩餘的桃子由下乙隻猴子取用。上述分桃過程一直進行到每只猴子都分到m個桃子。設計乙個程式求出猴子出列順序(完成整個分配過程後的猴子的順序)。

二、設計目的:

通過猴子要分桃這一題目,熟練了解單迴圈鍊錶作為儲存結構,使之更為靈活的運用資料結構、

3、設計內容:

(1)利用單迴圈鍊錶作為儲存結構模擬此過程;

(2)鍵盤輸入猴子數目、桃子數目;

(3)按照出列順序輸出猴子編號。

四、程式流程圖

5、源程式:

#include<>

#include<>

#define len sizeof(struct monkey)

struct monkey

;int i,n,k,m,w=0;

struct monkey *head,*p1,*p2;

int main()

p1=head;

printfn");

while(1)

else if (p1->food+i==m)

printf("%d\n",p1->num);w++;p2->next=p1->next;p1=p1->next;}

else

printf("%d\n",p1->num);w++;k=i-(m-p1->food);p2->next=p1->next;p1=p1->next;hello(k);}

}}}void hello(int x)

else if(p1->food+i==m)

else

}}6、軟體測試報告(包括所用到的資料及結果)

資料結構猴子選王問題

2015年 資料結構與演算法 課程設計 學院 數學與資訊科學學院 專業 數學與應用數學 班級 2013級1班 姓名 解堅傑 課題名稱 猴子的選王問題 指導老師 覃美珍 2015年 8 月 22 日 猴子選王問題 猴子選王問題求解 一堆猴子都有編號,編號是1,2,3 m 這群猴子 m個 按照1 m的順...

資料結構大作業猴子吃桃問題

課程設計說明書 課程名稱資料結構 設計題目 猴子吃桃問題 學院 電腦科學與資訊工程學院 學生姓名 學生學號 專業班級軟體工程 指導教師宋強 2014年06月15日 課程設計任務書 猴子吃桃問題 摘要 資料結構是一門結合c 知識的重要課程,因此我們要學會用平時課本的知識運用到我們的現實生活當中,這樣才...

猴子分桃的故事

海灘上有一堆桃子,是兩隻猴子的共有財產。猴子性急,有時也很正直。第一只猴子來到海灘後想要取走自己的乙份,於是便把桃子均分為兩堆,發現還多乙個,便把多餘的乙個扔進大海,取走自己應得的乙份。第二隻猴子來到海灘後也想取走自己的乙份。猴子總歸是猴子,它無法知道夥伴已取走乙份。於是第二隻猴子又把桃子均分為兩堆...