2012-06-15 45 views
1

我寫了一個愚蠢的小腳本,以幫助我分配收藏中的電影評級。我有一系列需要排序的電影標題。我想要應用合併排序類遞歸算法按評級排序電影。在每次比較中,我都希望更新文檔上的表單。用戶將選擇A或B--兩個標題中較好的 - 然後點擊「繼續」按鈕。它將使用這些信息繼續進行排序。到該過程結束時,用戶將回答A或B至產生電影的有序列表所需的最少數量的二進制比較問題。遞歸函數與用戶輸入

我的問題:我怎麼纔能有遞歸算法等待每個步驟的窗體輸入?使用類似confirm()的代碼將允許代碼在確定輸入時阻止,但顯然頁面元素無法執行此操作。我應該涉及一些令人討厭的超時功能嗎?保持某種全局封閉?理想情況下,我希望將「continue」按鈕鏈接到continueRecursion()回調,但我不知道如何執行此操作。

有關如何解決這個問題的任何建議?

+0

用於表示遞歸的數據結構是'Stack'。 (這是有道理的,因爲編程堆棧是一個堆棧。)因此,創建一個堆棧數據結構,然後在堆棧的每個級別上存儲代表每個函數調用的模擬局部變量。然後把這個堆棧放到一個全局變量中 - 希望你能看到這個去哪裏... – cheeken

回答

1

只需在函數調用之間存儲結果並讓用戶成爲啓動例程的用戶。

所以:

  1. 獲取數據
  2. 現在的選擇
  3. 在用戶的選擇,給現在的選擇+舊數據進行排序程序。
  4. 將數據分類到第1步後再繼續。

你只需要將數據保存在全局或保持傳遞它。