树与二叉树
2020-08-13 本文已影响0人
1nvad3r
#include <cstdio>
//二叉树存储结构
struct Node {
int data;
Node *lchild;
Node *rchild;
};
//新建结点
Node *newNode(int v) {
Node *node = new Node;
node->data = v;
node->lchild = node->rchild = NULL;
return node;
}
//查找所有值为x的结点,把值修改为newdata
void search(Node *root, int x, int newdata) {
if (root == NULL) {
return;
}
if (root->data == x) {
root->data = newdata;
}
search(root->lchild, x, newdata);
search(root->rchild, x, newdata);
}
//插入一个新结点,往左子树插
//注意root要使用引用,否则插入不成功
void insert(Node *&root, int x) {
if (root == NULL) {
root = newNode(x);
return;
}
insert(root->lchild, x);
}
//二叉树的创建
Node *create(int data[], int n) {
Node *root = NULL;
for (int i = 0; i < n; i++) {
insert(root, data[i]);
}
return root;
}