0
我不知道是什麼導致程序失敗,除了它與嘗試向左右兒童分配一些指針有關的事實。沒有錯誤消息,程序只是無法運行。我只是假設這是因爲我錯誤地分配了指針。運行失敗(未知原因)
struct TreeNode
{
Type nodeinfo;
BinaryTree<Type> *left;
BinaryTree<Type> *right;
};
類的名稱使用模板二叉樹:
這裏的結構。這裏是違規方法:
template <typename Type>
void BinaryTree<Type>::setSubtree(Type a){
root = new TreeNode;
BinaryTree<Type> *b,*c;
root->nodeinfo=a;
b->root = s.top();
root->right = b;
s.pop();
c->root = s.top();
root->left = c;
s.pop();
s.push(root);
}
s是一個類型爲TreeNode *的堆棧並保存節點。 根是個別節點。
我已經改變了很多次,我忘記了我的開始。這是測試代碼(setInfo工作得很好):
tree.setInfo('b');
tree.setInfo('c');
tree.setSubtree('-');
任何有識之士來我應該如何分配的指針將不勝感激。
您試圖取消引用未初始化的指針。 – chris
某處存在錯誤消息,這是訪問衝突,而且是嚴重的錯誤消息。在編寫另一行代碼之前,您應該找到輸出消息轉儲到的位置。 – Aesthete