問題:
假設在週末舞會上,男士們和女士們進入舞廳時,各自排成一隊。
跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。
若兩隊初始人數不相同,則較長的那一隊中未配對者等待下一輪舞曲。
現要求寫一演算法模擬上述舞伴配對問題
程式功能:
能夠使男女依次組合,如若男女相等配對完成,否則輸出等待下一輪的男士或者女士。
演算法:
學習佇列於是採用鏈佇列的資料結構儲存資料,結構很好設計,但是其中涉及的一些其他的問題,比如自己新增的輸入0結束;
總結:
1.當使用指向結構體的指標時候,不要忘記對它進行初始化。
是指向乙個已經存在的結構體也好 ,還是指向乙個new動態分配的記憶體也好 ; 都必須要對該指標初始化,千萬不要上來就用,否則會造成引用出錯。
2.其次還要注意的就是要注意野指標,本程式就因為提前釋放了後邊還在引用,導致執行出錯,造成了除錯的困難。為了盡量避免出現野指標要注意釋放後要置空null;
3.最後本程式是自己根據c語言資料結構的教材,自己用c++實現的,個人感覺程式很長,囉嗦不精!歡迎各位指導批評,給出建議!
#include
using namespace std;
#define null 0
//////
//////
//////
//////
//////定義結構型別///
//////
//////
///typedef struct men_node//男士佇列型別
men_node;
typedef struct women_node//女士佇列型別
women_node;
typedef struct
//指向男士的頭尾指標型別
men_q;
typedef struct
//指向女士的頭尾指標型別
women_q;
//////
//////
//////
//////
//////類///
//////
//////
////////
class queue
;///
//////
//////
//////
//////
///建構函式函式///
//////
//////
////////
queue::queue()
;//臨時建立只用於下面的操作
strcpy(manname , name);
strcpy(womenname , name);
}///
//////
//////
//////
//////
///初始化函式///
//////
//////
////////
men_node *queue::create_men()//初始化男士佇列
women_node *queue::create_women()//初始化女士佇列
//////
//////
//////
//////
//////判斷是否隊空///
//////
//////
////////
int queue::empty(men_q *qm)//男士隊空
else
}int queue::empty(women_q *qw)//女士隊空
else
}///
//////
//////
//////
//////
///入隊操作///
//////
//////
////////
void queue::in_queue(men_q *qm)//男士入隊
void queue::in_queue(women_q *qw)//女士入隊
//////
//////
//////
//////
//////出隊操作///
//////
//////
////////
void queue::out_queue(men_q *qm , char ch)//男士出隊
void queue::out_queue(women_q *qw , char ch)//女士出隊
//////
//////
//////
//////
//////如果讀取到0結束輸入,返回1///
//////
//////
////////
int queue::over_manname(men_q *qm)//男士佇列
int queue::over_womenname(women_q *qw)//女士佇列
//////
//////
//////
//////
//////取得未配對的第一人///
//////
//////
////////
char *queue::get_failname(men_q *qm)//取得男士未配對的第一人
char *queue::get_failname(women_q *qw)//取得女士未配對的第一人
//////
//////
//////
//////
//////顯示輸出結果///
佇列 舞伴問題
所有男士女士存放在陣列dancer中,按照性別分為兩個佇列,之後每個佇列各出頭元素進行配對,配對時輸出出對人姓名,最後再輸出剩餘第乙個人的名字。演算法思路 設定兩個佇列分別儲存男女,先依次入隊,只有兩個隊不空則不斷出隊配合,迴圈結束後,輸出非空隊的對頭元素。首先定義乙個人的結構體 typedef s...
佇列 舞伴問題
實驗要求 假設在週末舞會上,男士們和女士們進入舞廳時,各自排成一隊。跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。若兩隊初始人數不相同,則較長的那一隊中未配對者等待下一輪舞曲。現要求寫一演算法模擬上述舞伴配對問題。實驗提示 先入隊的男士或女士亦先出隊配成舞伴。因此該問題具體有典型的先進先出特...
簡單的舞伴問題實現
西 安 郵電大 學 計算機學院 資料結構課內實驗報告 實驗名稱 舞伴問題 專業名稱 電腦科學與技術 班 級 計科1505 學生姓名 賀遠 學號 8位 04151154 指導教師 初建瑋 曾豔實驗日期 2016年10 月21日 10月31日 一.實驗目的 1.通過對佇列的學習,掌握佇列的邏輯結構和儲存...