1. 定义节点--数据结构
image.png// 1.定义结构体
class Node{
public:
int value;
struct Node *left_Node;
struct Node *right_Node;
};
2.节点对象声明|指针对象声明
(1)树节点
(2)指针节点(树类型的指针)
// 2
// 类型定义-节点
typedef class Node TreeNode;
// 类型定义-节点指针
typedef TreeNode *BinaryTree;
详细过程分析
- 定义结构体
- 声明节点
- 为节点的使用分配空间
-
指针指向
image.png
3. 声明树根节点
// 定义根节点指针
BinaryTree rootNode;
4.定义函数: 创建添加二叉树节点
void Add_Node_To_Tree(int value){
// 当前节点指针
BinaryTree currentNode;
// 新的节点
BinaryTree newNode;
// 用来记录是否插入新的节点
int flag = 0;
// 新的节点分配的内存空间
//(节点指针,放入内容)
newNode = (BinaryTree)malloc(sizeof(TreeNode));
// 建立节点的内容
newNode->left_Node = NULL;
newNode->right_Node = NULL;
newNode->value = value;
// 建立树
if (rootNode == NULL){
rootNode = newNode;
}
else{
currentNode = rootNode;
// 当为true
while (!flag)
{
if (value < currentNode->value){
// 在左子树
if (currentNode->left_Node == NULL){
currentNode->left_Node = newNode;
flag = 1;
}
else{
currentNode = currentNode->left_Node;
}
}
else{
// 在右子树
if (currentNode->right_Node == NULL){
currentNode->right_Node = newNode;
flag = 1;
}
else{
currentNode = currentNode->right_Node;
}
}
}
}
}
分析
step1 : 定义指针对象
(1)当前节点指针对象
(2)新的节点的指针对象
step2:定义内容
内容储存
step3: 给节点找位置进行存储
空树 左子树 右子树
网友评论