Mình đang làm đồ án hiển thị cây nhị phân dạng đồ họa.Ngặt nỗi khi làm gần xong thì ông thầy không chịu code bên BC 3.1 mà chỉ dev c++ hoặc visual c++. Nhìn code vẽ hình tròn của visual là nản rồi,nên chuyển code từ BC sang DEV nhưng tới lúc hiển thị cây là báo lỗi.Ai biết xin giúp mình với.
C Code:
  1. #include <graphics.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include "iostream"
  5. using namespace std;
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #define TRUE 1
  9. #define FALSE 0
  10. typedef int ElementType;
  11. struct TreeNode;
  12. typedef struct TreeNode *Node;
  13. typedef struct TreeNode *Tree;
  14.  
  15. //Khai bao cay nhi phan
  16. struct TreeNode
  17. {
  18.     ElementType Element;
  19.     Node Left;  //Con tro Trai
  20.     Node Right; //Con tro Phai
  21. };
  22. int con(int dis);
  23. int Empty(Tree T);
  24. Tree Makenode(int x);
  25. Tree Newnode();
  26. Tree MakeEmpty(Tree T);
  27. void Insert_node(Tree &T, int x);
  28. void Draw_Graph(Tree T, int x, int y, int dis);
  29. int main()
  30. {
  31.     int mh=0,mode=0,x,y;
  32.     char* m;
  33.     int n, i, menu,errorcode;
  34.     Tree timkiem, tm,T;
  35.     //initgraph(&mh,&mode,"");
  36.     //if(graphresult()!=grOk) exit(1);
  37.     do
  38.     {
  39.    
  40.     printf(" Menu");
  41.     printf("\n1.Them node cho cay");
  42.     printf("\n2.Duyet cay NLR");
  43.     printf("\n0.Thoat");
  44.     printf("\n\nChon menu thuc hien: ");
  45.     scanf("%d",&menu);
  46.     switch (menu)
  47.     {
  48.     case 1:
  49.          {
  50.                  printf("Gia tri cua node:");
  51.                  scanf("%d",&x);
  52.                  Insert_node(T,x);
  53.                  break;
  54.          }
  55.     case 2:
  56.          {
  57.                          initgraph(&mh, &mode, "");
  58.                          errorcode = graphresult();
  59.  
  60.                             if (errorcode != grOk)
  61.                                exit(1);
  62.                             //setbkcolor(GREEN);
  63.                             //setcolor(WHITE);
  64.                             Draw_Graph(T, getmaxx() / 2, 10, getmaxx() / 6);
  65.                             getch();
  66.                             closegraph();
  67.                             break;
  68.          }
  69.      case 0:
  70.           {
  71.                             exit(1);
  72.                             break;
  73.           }
  74.      default :
  75.              {
  76.                   printf("Chon menu sai!!!");
  77.                   getch();
  78.                   break;
  79.              }
  80.      }
  81.      }
  82.      while (menu !=0);
  83.      getch();
  84. }
  85. //Khoi tao cay
  86. Tree MakeEmpty(Tree T)
  87. {
  88.     if(T!=NULL)
  89.     {
  90.                MakeEmpty(T->Left);
  91.                MakeEmpty(T->Right);
  92.                free(T);
  93.     }
  94.     return NULL;
  95. }
  96.  
  97.  
  98. //Cap phat mot node cho cay
  99. Tree Newnode()
  100. {
  101.      Tree p;
  102.      p=(Tree)malloc(sizeof(struct TreeNode));
  103.      return (p);
  104. }
  105.  
  106. //Kiem tra cay rong
  107.  
  108. int Empty(Tree T)
  109. {
  110.     return (T ==NULL) ? TRUE : FALSE;
  111. }
  112.  
  113. Tree Makenode(int x)
  114. {
  115.      Tree p;
  116.      p=Newnode();
  117.      p->Element = x;
  118.      p->Left = NULL;
  119.      p->Right= NULL;
  120.      return p;
  121. }
  122.  
  123.  
  124. //Chen 1 node vao cay
  125.  
  126. void Insert_node(Tree &T, int x)
  127. {
  128.      
  129.      if (T == NULL)
  130.      {
  131.                
  132.                T = Newnode();
  133.                T->Element = x;
  134.                T->Left = NULL;
  135.                T->Right= NULL;
  136.      }
  137.      else if (x == T->Element)
  138.      {
  139.           printf("Gia tri bi trung !!!");
  140.      }
  141.           else if (x < T->Element)
  142.                   Insert_node(T->Left,x);
  143.                else
  144.                     Insert_node(T->Right,x);
  145.  
  146. }
  147. int con (int dis)
  148. {
  149.     int con1 =(int) ((1.0 * dis)/1.2);
  150.     return con1;
  151. }
  152.  
  153. void Draw_Graph(Tree T, int x, int y, int dis)
  154. {
  155.      char *s;
  156.      if (!Empty(T))
  157.      {
  158.                    circle(x,y,10);
  159.                    itoa(T->Element,s,10);
  160.                    outtextxy(x-5, y-4,s);
  161.                    if (T->Left !=NULL)
  162.                       line (x,y,x-con(dis), y+20);
  163.                    if (T->Right !=NULL)
  164.                       line (x,y,x+con(dis), y+20);
  165.                    Draw_Graph(T->Left,x - con(dis), y + 20, con(dis));
  166.                    Draw_Graph(T->Right,x + con(dis), y + 20, con(dis));
  167.      }
  168. }