二叉树
结点
class Node {
public:
Node *lchild, *rchild;
int data;
Node(int _data) {
data = _data;
lchild = NULL;
rchild = NULL;
}
~Node() {
if (lchild != NULL) {
delete lchild;
}
if (rchild != NULL) {
delete rchild;
}
}
void preorder() {
cout << data << " ";
if (lchild != NULL) {
lchild -> preorder();
}
if (rchild != NULL) {
rchild -> preorder();
}
}
void inorder() {
if (lchild != NULL) {
lchild -> inorder();
}
cout << data << " ";
if (rchild != NULL) {
rchild -> inorder();
}
}
void postorder() {
if (lchild != NULL) {
lchild -> postorder();
}
if (rchild != NULL) {
rchild -> postorder();
}
cout << data << " ";
}
};
树
class BinaryTree {
private:
Node *root;
public:
BinaryTree() {
root = NULL;
}
~BinaryTree() {
delete root;
}
void preorder() {
root -> preorder();
}
void inorder() {
root -> inorder();
}
void postorder() {
root -> postorder();
}
};
实例
BinaryTree binarytree;