使用C语言构建基本的二叉树数据结构

2020-01-06 13:43:26王冬梅

易采站长站为您分析使用C语言使用C语言构建基本的二叉树数据结构,包括根据前序序列和中序序列构建二叉树的方法,需要的朋友可以参考下

二叉树结构常用的一些初始化代码

 

 
  1. #include  #include 
  2.   typedef struct Node{ 
  3. int data;  Node *leftchild; 
  4. Node *rightchild;  }Node; 
  5.    
  6. /*  初始化一棵二叉树排序树。 
  7. */  void InitBinaryTree(Node**root,int elem) 
  8. {  *root=(Node*)malloc(sizeof(Node)); 
  9. if(!(*root))  { 
  10. printf("Memory allocation for root failed.n");  return; 
  11. }  (*root)->data=elem; 
  12. (*root)->leftchild=NULL;  (*root)->rightchild=NULL; 
  13. }   
  14. /*  向二叉树排序树中插入节点。 
  15. */  void InsertNode(Node *root,int elem) 
  16. {  Node *newnode=NULL; 
  17. Node *p=root,*last_p=NULL;   
  18. newnode=(Node*)malloc(sizeof(Node));  if(!newnode) 
  19. {  printf("Memory allocation for newnode failed.n"); 
  20. return;  } 
  21. newnode->data=elem;  newnode->leftchild=NULL; 
  22. newnode->rightchild=NULL;   
  23. while(NULL!=p)  { 
  24. last_p=p;  if(newnode->datadata) 
  25. {  p=p->leftchild; 
  26. }  else if(newnode->data>p->data) 
  27. {  p=p->rightchild; 
  28. }  else 
  29. {  printf("Node to be inserted has existed.n"); 
  30. free(newnode);  return; 
  31. }  } 
  32. p=last_p;  if(newnode->datadata) 
  33. {  p->leftchild=newnode; 
  34. }  else 
  35. {  p->rightchild=newnode; 
  36. }  } 
  37.   /* 
  38. 创建一棵二叉树排序树。  */ 
  39. void CreatBinarySearchTree(Node **root,int data[],int num)  {