#include <stdlib.h> #include <stdio.h> typedef struct btnode { int data; struct btnode *lchild,*rchild; }btnode; int b[100]; //在二叉树中插入元素 btnode *insertnode(btnode *root,int node) { btnode *newnode; btnode *currentnode; btnode *parentnode; newnode=(btnode*)malloc(sizeof(btnode)); newnode->lchild=NULL; newnode->rchild=NULL; newnode->data=node; if (root==NULL) return newnode; else { currentnode=root; while(currentnode!=NULL) { parentnode=currentnode; if (currentnode->data>node) currentnode=currentnode->lchild; else currentnode=currentnode->rchild; } if (parentnode->data>node) parentnode->lchild=newnode; else parentnode->rchild=newnode; } return root; } //建立二叉树 btnode* createtree(int *s,int len) { btnode* root=NULL; for (int i=0;i<len;++i) root=insertnode(root,s[i]); return root; } //先序遍历输出二叉树 void preorder(btnode *root) { if (root==NULL) return; else { printf ("%d",root->data); preorder(root->lchild); preorder(root->rchild); } } int main() { int s[20]; btnode* root; root=NULL; int len=0; int n; scanf("%d",&n); while(n!=0) { s[len]=n; len++; scanf("%d",&n); } root=createtree(s,len); printf ("the tree is created!\n"); preorder(root); return 0; }