#include <iostream>
using namespace std;
typedef struct BiTNode
{
int data;
BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
BiTNode *createNode(int data)
{
BiTree newNode = new BiTNode;
if (newNode != NULL)
{
newNode->data = data;
newNode->lchild = NULL;
newNode->rchild = NULL;
}
return newNode;
}
void InsertNode(BiTree &root, int data)
{
if (root == NULL)
{
root = createNode(data);
return;
}
BiTree current = root;
if (data < current->data)
{
InsertNode(current->lchild, data);
}
else
{
InsertNode(current->rchild, data);
}
}
void inOrderTraversal(BiTree root) // 中序遍历
{
if (root != NULL)
{
inOrderTraversal(root->lchild);
printf("%d ", root->data);
inOrderTraversal(root->rchild);
}
}
void freeTree(BiTree root)
{
if (root == nullptr)
{
return;
}
freeTree(root->lchild);
freeTree(root->rchild);
delete root;
}
int main()
{
BiTree B = nullptr;
InsertNode(B, 10);
InsertNode(B, 8);
InsertNode(B, 11);
InsertNode(B, 43);
InsertNode(B, 23);
InsertNode(B, 23);
cout << "二叉树:";
inOrderTraversal(B);
freeTree(B);
return 0;
}
03-08
8801
01-03
2401
09-29
252