所有男士女士存放在陣列dancer中,按照性別分為兩個佇列,之後每個佇列各出頭元素進行配對,配對時輸出出對人姓名,最後再輸出剩餘第乙個人的名字。
演算法思路:設定兩個佇列分別儲存男女,先依次入隊,只有兩個隊不空則不斷出隊配合,迴圈結束後,輸出非空隊的對頭元素。
首先定義乙個人的結構體:
typedef structperson,qelemtype;
演算法實現:
void dancepartner(person dancers,int n)
while(!queueempty(mdances)&&!queueempty(fdances))
if(!queueempty(mdances))
else if(!queueempty(fdances))
}
佇列 舞伴問題
實驗要求 假設在週末舞會上,男士們和女士們進入舞廳時,各自排成一隊。跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。若兩隊初始人數不相同,則較長的那一隊中未配對者等待下一輪舞曲。現要求寫一演算法模擬上述舞伴配對問題。實驗提示 先入隊的男士或女士亦先出隊配成舞伴。因此該問題具體有典型的先進先出特...
資料結構 舞伴問題 佇列
舞伴問題 假設在週末舞會上,男士們和女士們進入舞廳時,各自排成一隊,男女人數不一定相等。跳舞開始時,依次從男隊和女隊的 隊首上各出一人配成舞伴。舞曲結束後,男女各自入隊。現在用小寫字母表示男士,大寫字母表示女士,試輸入乙個字串,按照大小寫將男女歸入兩個佇列,試寫出當所有人都至少跳舞一次時,舞伴的組合...
迴圈佇列之舞伴問題 含原始碼詳解
假設在週末舞會上,男士和女士進入舞廳,各自排成一隊,跳舞開始時,依次從男隊和女隊的隊頭各出一人配成舞伴。若兩隊初始人數不相同,那麼較長的那一對中未配對者等待下一輪舞曲,試寫一種演算法模擬上面的舞伴問題 我們可以看出這是乙個典型的佇列問題,我們只需要把男士隊和女士隊看成佇列,我們可以把男士和女士的資訊...