2014秋C 第19周 專案 單鏈表 列舉

2021-06-28 02:31:57 字數 2492 閱讀 7820

課程主頁在

課程資源在

雲學堂「賀老師課堂」同步展示,使用的帳號請到課程主頁中檢視。 

【專案1 - 動態鍊錶體驗】

下面是乙個建立動態鍊錶的程式。閱讀程式,在草稿紙上畫出鍊錶建立的過程,藉此學會如何建立鍊錶。然後按要求改造程式。

#include  using namespace std;

struct node

;node *head=null; //將煉表頭定義為全域性變數,以便於後面操作

void make_list(); //建立鍊錶

void out_list(); //輸出鍊錶

在上面的程式基礎上定義下面的函式,實現相應的功能。

為簡便起見,每編寫乙個函式,立刻在main函式中呼叫進行測試。

(1)編寫make_list2()函式建立鍊錶,使建立鍊錶時,後輸入的資料,將新輸入的數字對應的結點放在鍊錶末尾。若輸入為3 5 2 9 4 7 0,建立的鍊錶為:

(2)編寫函式void search(int x),輸出鍊錶中是否有值為x的結點。

(3)編寫函式delete_first_node(),刪除鍊錶中的第乙個結點。

(4)編寫函式delete_node(int x),刪除結點值為x的結點。

(5)編寫make_list3()函式建立鍊錶,使建立鍊錶時,使結點中的資料呈現公升序。若輸入為3 5 2 9 4 7 0,建立的鍊錶為:

(6)編寫函式void insert(int x),將值為x的結點插入到由make_list3建立起來的有序鍊錶中。

【專案2-猴子選大王】

一群猴子,編號是1,2,3 ...m,這群猴子(m個)按照1-m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。輸入m和n,輸出為大王的猴子是幾號。

提示1:(1)鍊錶解法:可以用乙個迴圈的單鏈表來表示這一群猴子。表示結點的結構體中有兩個成員:乙個儲存猴子的編號,乙個為指向下乙個人的指標,編號為m的結點再指向編號為1的結點,以此構成環形的鏈。當數到第n個時,該結點被刪除,繼續數,直到只有乙個結點。(2)使用結構陣列來表示迴圈鏈:結構體中設乙個成員表示對應的猴子是否已經被淘汰。從第乙個人未被淘汰的數起,每數到n時,將結構中的標記改為0,表示這只猴子已被淘汰。當數到陣列中第m個元素後,重新從第乙個數起,這樣迴圈計數直到有m-1被淘汰。

提示2:該題為電腦科學中的經典問題,很多實際的問題可以抽象到這種模型上來。感興趣的同學請搜尋「約瑟夫問題」。

【專案3-應用列舉】

(1)閱讀教材7.3節,了解列舉型別的一般用法。閱讀下面輸出he先生買車方案的程式,理解使用列舉型別的意義。

#include using namespace std;

enum color ;

enum brand ;

int main( )

switch(brand)

;//分別表示按x軸, y軸, 原點對稱三種方式

【專案4-點和距離】

讀程式,寫出函式的定義,注意其中列舉型別的用法

enum symmetricstyle ;//分別表示按x軸, y軸, 原點對稱

struct point;

double distance(point p1, point p2); // 兩點之間的距離

double distance0(point p1);

point symmetricaxis(point p,symmetricstyle style); //返回對稱點

int main( ),p2=,p;

cout<

union un

;int main()

{ union un x;

x.c[0]='a';

x.c[1]='b';

x.c[2]='c';

x.c[3]='d';

cout<

***************==== 迂者 賀利堅 csdn部落格專欄***************==

|== it學子成長指導專欄

專欄文章的分類目錄(不定期更新) ==|

賀利堅課程教學鏈結(分課程年級) ==|

|== 我寫的書——《逆襲大學——傳給it學子的正能量》    ==|

***** 為it菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 *****

2014秋C 第19周 專案2參考 猴子選大王

課程主頁在 課程資源在 雲學堂 賀老師課堂 同步展示,使用的帳號請到課程主頁中檢視。專案2 猴子選大王 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。輸入m和n,輸...

2014秋C 第8周專案 分支程式設計

課程主頁在 課程資源在雲學堂 賀老師課堂 同步展示,使用的帳號請到課程主頁中檢視。閱讀以下的兩段程式,用 人腦 執行寫出輸出結果。再在計算機或手機上執行程式,對照自己寫出的結果,進行反思。1.include using namespace std int main 執行結果 貼圖 知識點總結 寫出在...

2014秋C 第17周 專案 結構體登場

課程主頁在 課程資源在 雲學堂 賀老師課堂 同步展示,使用的帳號請到課程主頁中檢視。專案1 體會函式引數傳遞 閱讀下面的程式,寫出期望中的執行結果。上機執行對照,並用單步執行的方法再次體會,完全掌握用指標和引用作為形式引數的用法。include using namespace std void fu...