数据结构-二叉树的创建和先序遍历
1 #include "stdio.h" 2 #include "stdlib.h" 3 #include "string.h" 4 typedef char DataType; 5 typedef struct BinTree{ 6 DataType key; //数据存放 7 struct BinTree *left; //左孩子 8 struct BinTree *right; //右孩子 9 }BinTree; 10 int count = 0; 11 BinTree *createBinTree() 12 { 13 DataType ch; 14 BinTree *T; 15 16 ch = getchar(); 17 getchar(); //接收输入的回车符 18 if(ch!='#') 19 { 20 T=(BinTree*)malloc(sizeof(BinTree)); //创建节点 21 T->key=ch; 22 T->left=createBinTree(); 23 T->right=createBinTree(); 24 } 25 else 26 { 27 T=NULL; 28 } 29 return T; 30 } 31 //先序遍历 32 void BinTreePrint(BinTree *t) 33 { 34 if(t != NULL) 35 { 36 printf("%c ",t->key); 37 BinTreePrint(t->left); 38 BinTreePrint(t->right); 39 } 40 } 41 main() 42 { 43 BinTree *t; 44 t = createBinTree(); 45 BinTreePrint(t); 46 }