假設我有一個這樣的結構:方案,從尖結構,取得指向
(define-struct node (value next))
;and making 2 nodes, parent pointing to child as next.
(define child (make-node 2 null))
(define parent (make-node 1 child))
在PLT的計劃,而在我的手有孩子(不知道父母是指針),是有可能找到指向節點sctuct而不知道父級?
假設我有一個這樣的結構:方案,從尖結構,取得指向
(define-struct node (value next))
;and making 2 nodes, parent pointing to child as next.
(define child (make-node 2 null))
(define parent (make-node 1 child))
在PLT的計劃,而在我的手有孩子(不知道父母是指針),是有可能找到指向節點sctuct而不知道父級?
不,這是不可能的。事實上,如果你沒有在任何地方保留對父對象的引用,父對象可能被垃圾回收。任何可證明永遠無法訪問的對象都可能隨時被刪除。如果您沒有在任何地方存儲對該對象的引用,則無法訪問該對象。
現在,如果你真的想回到父母身邊,有幾個選擇。您可以在您的子節點中保存對父項的引用(創建父項之後您必須對其進行設置)。一個不太理想的解決方案,但是如果因爲某種原因無法更改相關數據結構,那麼該解決方案就會保留您創建的所有節點的列表,然後在該列表中搜索具有孩子的節點對於有問題的節點是eq?
。或者你可以做同樣的事情,但將它們保存在散列表中,關鍵是孩子,值是父母(或父母的名單,如果可能有多個),以提高效率。我不確定這些解決方案是否適用於您,因爲如果您在入門課程中這樣做而不使用完整的語言,它們可能取決於您所使用的語言級別。
不,你不能。你甚至可以在哪裏得到這個想法呢?
也許可能會有一些「魔法」背後,可以提供我想通過從內存中讀取或如此:) – Hellnar 2009-11-14 13:03:33
不幸的是,沒有數據結構的編碼魔術。至少沒有常識。只有上帝知道Google服務器運行的是什麼;-) – ddaa 2009-11-15 00:31:45