二叉树概述
在掌握完全二叉树与堆结构后,我们需要进一步理解普通二叉树的遍历机制。遍历是访问树中所有节点的过程,也是后续许多复杂操作的基础。
节点定义与创建
普通二叉树通常采用链式存储,每个节点包含数据域及左右子节点指针。
typedef int BTDataType;
typedef struct BinaryTree {
BTDataType data;
struct BinaryTree* left;
struct BinaryTree* right;
} BTNode;
为了演示遍历逻辑,我们需要先构建一棵示例二叉树。手动创建节点并建立连接关系如下:
BTNode* BuyNode(int x) {
BTNode* root = (BTNode*)malloc(sizeof(BTNode));
if (root == NULL) {
perror("malloc fail");
return NULL;
}
root->data = x;
root->left = NULL;
root->right = NULL;
return root;
}
BTNode* TreeCreate() {
BTNode* node1 = BuyNode(1);
BTNode* node2 = BuyNode(2);
BTNode* node3 = BuyNode(3);
BTNode* node4 = BuyNode(4);
BTNode* node5 = BuyNode(5);
BTNode* node6 = BuyNode(6);
node1->left = node2; node1->right = node4;
node2->left = node3; node2->right = node6;
node4->left = node5;
return node1;
}
构建出的树结构如下所示:



