//方法一
#include<stdio.h>
#include<stdlib.h>
typedef struct Tree {
int data;
struct Tree* left;
struct Tree* right;
}node, * btree;
btree Nnode(int data) {
btree nnode = (btree)malloc(sizeof(node));
if (nnode == NULL) {
printf("\n开辟空间失败,无法存储数据!\n");
return NULL;
}
btree p = NULL;
nnode->data = data;
nnode->left = NULL;
nnode->right = NULL;
return nnode;
}
btree create_tree(btree root, int data) {
if (root == NULL) {
root = Nnode(data);
return root;
}
else {
btree p = root;
if (p->data > data) {
if (p->left != NULL) {
p = p->left;
create_tree(p, data);
}
else {
p->left = Nnode(data);
}
}
else {
if (p->right != NULL) {
p = p->right;
create_tree(p, data);
}
else {
p->right = Nnode(data);
}
}
}
}
int main() {
int i, data[9] = { 5,6,24,8,12,3,17,1,9 };
btree root = NULL, ptr = NULL;
for (i = 0; i < 9; i++) {
if (i == 0) {
root = create_tree(root, data[i]);
}
else {
create_tree(root, data[i]);
}
}
printf("\n左子树:\n");
ptr = root;
while (ptr != NULL) {
printf("%d\n", ptr->data);
ptr = ptr->left;
}
printf("\n右子树 :\n");
ptr = root;
while (ptr != NULL) {
printf("%d\n", ptr->data);
ptr = ptr->right;
}
printf("\n");
return 0;
}
//方法二
#include<stdio.h>
#include<stdlib.h>
typedef struct Tree {
int data;
struct Tree* left;
struct Tree* right;
}node,*btree;
btree Nnode(int data) {
btree nnode = (btree)malloc(sizeof(node));
if (nnode == NULL) {
printf("\n开辟空间失败,无法存储数据!\n");
return NULL;
}
btree p = NULL;
nnode->data = data;
nnode->left = NULL;
nnode->right = NULL;
return nnode;
}
btree create_tree(btree root, int data) {
if (root == NULL) {
root = Nnode(data);
return root;
}
else {
if (root->data > data) {
root->left = create_tree(root->left,data);
}
else {
root->right = create_tree(root->right, data);
}
return root;
}
}
int main() {
int i, data[9] = {5,6,24,8,12,3,17,1,9};
btree root = NULL;
for (i = 0; i < 9; i++) {
root = create_tree(root, data[i]);
}
printf("\n左子树:\n");
btree ptr = root;
while (ptr != NULL) {
printf("%d\n",ptr->data);
ptr = ptr->left;
}
printf("\n右子树 :\n");
btree ptr2 = root;
while (ptr2 != NULL) {
printf("%d\n", ptr2->data);
ptr2 = ptr2->right;
}
printf("\n");
return 0;
}