Tree.cpp
上传用户:wszmarenbt
上传日期:2013-04-26
资源大小:2552k
文件大小:1k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #include "Tree.h"
  2. void TREE::BUILD_TREE(NODE *&Root,int Data)
  3. {
  4. NODE *TEMP;
  5. NODE *BACKTEMP;
  6. if(Root == 0)
  7. {
  8. Root=new NODE;
  9. Root->LEFT=Root->RIGHT=0;
  10. Root->DATA=Data;
  11. }
  12. else
  13. {
  14. TEMP=Root;
  15. while(TEMP!=0)
  16. {
  17. BACKTEMP=TEMP;
  18. if(Data<(TEMP->DATA)) TEMP=TEMP->LEFT;
  19. else TEMP=TEMP->RIGHT;
  20. }
  21. if(Data<(BACKTEMP->DATA))
  22. {
  23. NODE *NEWNODE=new NODE;
  24. NEWNODE->LEFT=NEWNODE->RIGHT=0;
  25. NEWNODE->DATA=Data;
  26. BACKTEMP->LEFT=NEWNODE;
  27. }
  28. else
  29. {
  30. NODE *NEWNODE=new NODE;
  31. NEWNODE->LEFT=NEWNODE->RIGHT=0;
  32. NEWNODE->DATA=Data;
  33. BACKTEMP->RIGHT=NEWNODE;
  34. }
  35. }
  36. }
  37. int TREE::SEARCH_TREE(NODE *Root,int Data)
  38. {
  39. NODE *TEMP;
  40. TEMP=Root;
  41. while((TEMP!=0)&&(TEMP->DATA!=Data))
  42. {
  43. if(Data<TEMP->DATA)
  44. {
  45. TEMP=TEMP->LEFT;
  46. }
  47. else
  48. {
  49. TEMP=TEMP->RIGHT;
  50. }
  51. }
  52. if(TEMP->DATA==Data)
  53. {
  54. printf("Find it!!!");
  55. return(0);
  56. }
  57. else
  58. {
  59. printf("Can not find it!!!.It isn't in this TREE!!!");
  60. return(1);
  61. }
  62. }
  63. void TREE::DISPLAY_TREE(NODE *Root)
  64. {
  65. if(Root!=NULL)
  66. {
  67. DISPLAY_TREE(Root->LEFT);
  68. printf("%d  ",Root->DATA);
  69. DISPLAY_TREE(Root->RIGHT);
  70. }
  71. }