設計人:
電氣q1142
李豔平(11150038)
日期:2012-11-29
指導教師:桂超
設計題目:鍊錶操作
一、 設計任務
1、 建立乙個單鏈表,並返回頭結點的位址head
2、 編寫函式circulachain,將上述單鏈表改為單迴圈鍊錶
3、 編寫函式addnode,在資料為x的結點之後插入資料為y的結點
4、 編寫函式delenode,刪除單鏈表中資料為x的結點
5、 解決約瑟夫問題:有n個人,圍坐一圈,對他們從1開始編號,即1,2,3,......,n,如果從某乙個人開始報數,他報數1,按順時針進行,緊挨的人報數2,再往下的人跟著報3......
,一直報到k,凡報到k的人出列,再往下,繼續從1 開始報數,2,3,......,一直報到k,凡報到k的人出列。試輸出該問題中順序出列的人的名字。
二、 功能描述
建立單鏈表函式:chain* crechain(char *ch)
建立單迴圈鍊錶函式:chain* circulchain(char *ch)
銷毀鍊錶:void destroy(chain *head)
顯示鍊錶中每個結點的資料:void show(chain *head)
插入結點函式:void addnode(chain *head, char x, char y)
刪除結點函式:void delenode(chain *head, char x)
三、 程式實現
1、單鏈表的基本操作:
#include
using namespace std;
struct chain
;chain* crechain(char *ch) //建立單鏈表
else
q = p;
}q -> next = null;
return (head);
}void addnode(chain *head, char x, char y) /* 插入結點 */
if (r == null)
cout<<"沒有資料為x的節點!"< else
}}void delenode(chain *head, char x) /* 刪除結點*/
else
}}void show(chain *head) //輸出鍊錶
cout<<"\n";
}void destroy(chain *head) //銷毀鍊錶
}int main()
2、單迴圈鍊錶:
chain* circulchain(char *ch)
else
q = p;
}q -> next = head;
return (head);
}3、約瑟夫問題:
#include
using namespace std;
struct joseph
;joseph *head, *tail; //joseph結構指標,全域性變數
void create(int n)//給每個結點資料賦值
tail = q;
tail->next = head;
}void display(int m) //依次輸出出列的人的名字
else q = pq指向相鄰的下一結點p
}while(q != q -> next); //剩餘結點數不為1,則繼續迴圈
head = q;
}int main()
程式設計課程設計報告
程式設計與演算法 課程設計 課程名稱 程式設計與演算法 姓名 學號 專業 所在院系 指導教師 日期年月日 注 1 無評閱人簽名成績無效 2 必須用鋼筆或原子筆批閱,用鉛筆閱卷無效 3 如有平時成績,必須在上面評分表中標出,並計算入總成績。課程設計評語 2 目錄 3 1 課程 題目 4 2 程式設計思...
《C物件導向程式設計》課程設計報告
題目 分數計算器設定 班級 k0312415 專業 電腦科學與技術 學號 k031241521 k031241535 姓名 周林 指導教師 小組成員 周林,張齊滿 二o一三年 10 月 15 日 一 課程設計問題描述 分數計算器設計是高等學校教務管理的重要組成部分,其內容較多,為了簡化計論,要求設計...
遊戲程式設計課程設計實驗報告
任課教師 李新弘 2014 2015學年第1學期 實驗 報告學號 2012329700002 姓名 陳潔 班級 數字 與技術12 1 班 日期 2015.1.22 一 實驗目的 unity是一種新型的it引擎。這次製作3d保齡球的課程設計,旨在進一步熟悉對於這款遊戲引擎的使用和開發,鍛鍊綜合運用學期...