1. 程式人生 > >二叉樹的C++實現

二叉樹的C++實現

筆者在程式碼中遇到的問題

在create函式中的這句話

_root = new BTNode;

這相當於在堆中分配了給_root分配了一片記憶體
如果沒有這句話,會發生以下錯誤
在這裡插入圖片描述

廢話不多說,直接上程式碼

#include<bits/stdc++.h>
using namespace std;
typedef struct BTNode{
	char data;
	struct BTNode *lchild, *rchild;
}BTNode;
class BTree {
public:
	BTNode	*root;
	BTree() {
		BTNode *_root = NULL
; root=create(_root); } void preorder(BTNode *p); BTNode *create(BTNode *_root); }; void BTree::preorder(BTNode *p) { if (p != NULL) { preorder(p->lchild); cout << p->data; preorder(p->rchild); } } BTNode* BTree::create(BTNode * _root) { char ch; cin >> ch; _root =
new BTNode; if (ch == '#') return NULL; _root->data = ch; _root->lchild = create(_root); _root->rchild = create(_root); return _root; } int main(void) { BTree a; a.preorder(a.root); return 0; }