我開始學習球拍,我正在使用任意的arity樹和生成遞歸來從給定棋盤上獲取棋盤的所有可能版本。 所以我們可以說我有這樣的板,其中假指空: (list "X" "X" "O" "O" "X" "O" "X" #false "X")
的解決方案,這個根據要求是: (list
(list "X" "X" "O" "O" "X" "O" "X" "X" "X")
(list "X" "X" "O"
>(define (f l) l) ;;;consider l to be a list
這個功能應該是什麼複雜性。據我說,它應該是O(長度爲l),因爲應該在堆上創建一個新列表並創建並返回一個新列表。 所以,如果它是O(長度l)則的複雜性(追加L1 L2)函數必須是O(長度L1 +長度L2),因爲 (define (append l1 l2)
(if (null? l1) l2 [c