2014-10-26 68 views
0

我已經用Ada寫了BSt,並且正在嘗試打印樹葉。這裏的樹和節點代碼在Ada的二叉樹中尋找樹葉

type Node; 
type Tree is access Node; 
type Node is record 
    Item: Integer; 
    Left,Right: Tree; 
end record; 

我可以檢查,如果樹不爲空,但如果Tree.Left或Tree.Right爲null我得到

raised CONSTRAINT_ERROR : access check failed 

符合,例如,如果我檢查

if (T.Left/=null) then 

如何檢查節點是否沒有孩子?

回答

1

這可能是因爲T istelf是null和葉

+0

如果'T'爲'null',那不是什麼!我想,避免用空指針進行遞歸調用會更好。假設你正在使用遞歸做這件事? – 2014-10-29 18:04:42

+0

啊,是的。 「T」的_parent_將是一片葉子,而不是「T」。適合我在精神上對一半的句子進行修改... – egilhh 2014-10-29 18:59:48

+0

Erm,* *可能是一片葉子 - 只有在* Both * *它是*'Left'和'Right'都是'null'時。 – 2014-10-29 19:19:51

0

嘗試

如果T/= null,則 如果T.left = null並且T.right = null,則 - 葉子節點!