19. 具遞迴(Recursive)能力的程式語言中,哪種資料結構常用來儲存呼叫
程序的返回位址(Return Address)?
(A) 陣列(Array)
(B) 串列(List)
(C) 堆疊(Stack)
(D) 佇列(Queue)
答案:登入後查看
統計: A(32), B(17), C(203), D(60), E(0) #1403489
統計: A(32), B(17), C(203), D(60), E(0) #1403489
詳解 (共 5 筆)
#2150552
堆疊(Stack):先進後出(FILO)
舉例:學生交考卷,先交的人考卷會疊在下面,所以考卷比較晚才會改到。
佇列(Queue):先進先出(FIFO)
舉例:排隊結帳,先排隊的人先結帳。
14
0
#3344000
當程式遇到 recursive call 時,必須保存當時的執行狀態;即 push 需要保存的內容到 stack memory 中
由於 Stack 空間有限,若又不斷 push 的話就會爆掉,造成所謂的「Stack Overflow」:
Recursive 所需的 Stack 空間= (每次 push 的量) * (recursive call 次數) 。
Push/Pop 執行的時間即是一個損耗,所以 Recursive 相當花時間
時間複雜度為 nO(2n)
經典題型:最大公因數 (GCD)、費波納契數列 (Fibonacci Sequence)、河內塔 (Hanoi Tower)、N 個字元的排列組合。
1
0
#6049079
我參考了以下網址說明,蠻清楚的。
https://medium.com/traveling-light-taipei/%E6%BC%94%E7%AE%97%E6%B3%95%E7%AD%86%E8%A8%98-%E9%81%9E%E8%BF%B4-recursion-e66e81566679
https://medium.com/traveling-light-taipei/%E6%BC%94%E7%AE%97%E6%B3%95%E7%AD%86%E8%A8%98-%E9%81%9E%E8%BF%B4-recursion-e66e81566679
0
0