C语言实现二叉排序树

ゞ 浴缸里的玫瑰 2022-12-31 02:26 189阅读 0赞

C语言实现二叉排序树并中序遍历验证

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct BitNode
  4. {
  5. int data;
  6. struct BitNode *lchild,*rchild;
  7. }BitNode;
  8. void Enternumber(int **k)
  9. {
  10. int i;
  11. *k=(int *)malloc(10*sizeof(int));
  12. printf("请输入10个不相同整数 :");
  13. for(i=0;i<10;i++) scanf("%d",&(*k)[i]);
  14. }
  15. BitNode** Search_BST(BitNode **L,int e)
  16. {
  17. if(!(*L)) return L;
  18. else if(e==(*L)->data) return 0;
  19. else if(e<(*L)->data) return Search_BST(&(*L)->lchild,e);
  20. else return Search_BST(&(*L)->rchild,e);
  21. }
  22. void Insert_BST(BitNode **L,int e)
  23. {
  24. L=Search_BST(L,e);
  25. if(!L)
  26. {
  27. printf("有数值相同");
  28. exit(0);
  29. }
  30. else
  31. {
  32. (*L)=(BitNode *)malloc(sizeof(BitNode));
  33. (*L)->data=e;
  34. (*L)->lchild=(*L)->rchild=NULL;
  35. }
  36. }
  37. void Print(BitNode *T)
  38. {
  39. if(T!=NULL)
  40. {
  41. Print(T->lchild);
  42. printf(" %d",T->data);
  43. Print(T->rchild);
  44. }
  45. }
  46. void main()
  47. {
  48. int *k,i;
  49. struct BitNode *L=NULL;
  50. Enternumber(&k);
  51. for(i=0;i<10;i++) Insert_BST(&L,k[i]);
  52. printf("中序遍历结果:");
  53. Print(L);
  54. }

发表评论

表情:
评论列表 (有 0 条评论,189人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言实现

    C语言实现二叉树 今天我们来介绍一下二叉树,上一节说到[堆的实现][Link 1],即为一种二叉树的顺序结构的应用,通过顺序表来维护堆 二叉树也可以通过链式结构来实现,