Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Bài tập sao chép cây nhị phân

  1. #1
    Ngày gia nhập
    11 2007
    Nơi ở
    Lũng Cú
    Bài viết
    65

    Unhappy Bài tập sao chép cây nhị phân

    Đây là đề
    Cho một cây nhị phân Tree1, hãy viết chương trình để sao chép nó thành cây nhị phân mới là Tree2 với nội dung và liên kết giống như cây Tree1
    Và đây là code của mình ;
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <alloc.h>
    #include <stdlib.h>
    #define TRUE 1
    #define FALSE 0
    struct nodetype
    {
    	int info;
    	struct nodetype *left,*right;
    
    };
    typedef struct nodetype * NODEPTR;
    NODEPTR ptree;
    //////////////////////////////////////////////////
    
    
    //Khoi tao cay  Tree 1
    void Initialize(NODEPTR ptree)
       {
    	ptree = NULL;
       }
    
    //////////////////////////////////////////////////
    
     //Cap phat mot node cho cay
    NODEPTR Newnode()
       {
    	NODEPTR p;
    	p=(NODEPTR)malloc(sizeof(struct nodetype));
    	return (p);
       }
    
    
    //////////////////////////////////////////////////
    
    //Kiem tra cay rong
    
    int Empty(NODEPTR ptree)
       {
    	return (ptree ==NULL) ? TRUE : FALSE;
       }
    
    ////////////////////////////////////////////////////
    
    //Chen 1 node vao cay
    
    void Insert_node(NODEPTR &ptree, int x)
       {
    	if (ptree == NULL)
    	    {
    	     ptree=Newnode();
    	     ptree->info = x;
    	     ptree->left = NULL;
    	     ptree->right= NULL;
    	    }
    	else if (x == ptree->info)
    		 {printf("Gia tri bi trung !!!");getch();}
    	     else  if (x < ptree->info)
    		       Insert_node(ptree->left,x);
    		   else Insert_node(ptree->right,x);
       }
    
    ///////////////////////////////////////////////////
    
    //Hàm Copy
    
    void CopyTree( NODEPTR ptree* copy,const NODEPTR ptree*originalTree )
    {
      if(originalTree == NULL )
         copy = NULL;
      else
          {
    	copy = new NODEPTR;
    	copy->info = originalTree->info;
    
    	CopyTree(copy->left,originalTree->left);
    	CopyTree(copy->right,originalTree->right);
          }
    }
    
    
    void main()
    { int n,x;
      clrscr();
      printf("Nhap so node cua cay :");
      scanf("%d",&n);
      Initilize(ptree);
      for(i=0;i<n;i++)
         { pritf("Node[%d]:",i);
           scanf("%d",&x);
           Insert_node(ptree,x);
         }
    
      printf("In cay Tree 2:\n");
      CopyTree(ptree);
      getch();
     }

    Các bạn cho mình hỏi : Mình đã cố gắng hết sức như code nhưng code vẫn còn 1 lỗi ở dòng màu đỏ .MOng các bạn fix dùm mình lỗi này với .Cảm ơn các bạn nhiều .

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    2

    keke bác Huy dzô đây nhờ giúp đỡ hẻ

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    81

    Trích dẫn Nguyên bản được gửi bởi duyanh_28 Xem bài viết
    //Hàm Copy

    void CopyTree( NODEPTR ptree* copy,const NODEPTR ptree*originalTree )
    {
    if(originalTree == NULL )
    copy = NULL;
    else
    {
    copy = new NODEPTR;
    copy->info = originalTree->info;

    CopyTree(copy->left,originalTree->left);
    CopyTree(copy->right,originalTree->right);
    }
    }


    void main()
    { int n,x;
    clrscr();
    printf("Nhap so node cua cay :");
    scanf("%d",&n);
    Initilize(ptree);
    for(i=0;i<n;i++)
    { pritf("Node[%d]:",i);
    scanf("%d",&x);
    Insert_node(ptree,x);
    }

    printf("In cay Tree 2:\n");
    CopyTree(ptree);
    getch();
    }
    [/CODE]
    Sửa lại 1 chút

    //Hàm Copy

    void CopyTree( NODEPTR &copy,const NODEPTR originalTree )
    {
    if(originalTree == NULL )
    copy = NULL;
    else
    {
    copy = Newnode();
    copy->info = originalTree->info;

    CopyTree(copy->left,originalTree->left);
    CopyTree(copy->right,originalTree->right);
    }
    }


    void main()
    { int n,x;
    clrscr();
    printf("Nhap so node cua cay :");
    scanf("%d",&n);
    Initialize(ptree);
    for(int i=0;i<n;i++)
    { printf("Node[%d]:",i);
    scanf("%d",&x);
    Insert_node(ptree,x);
    }

    printf("In cay Tree 2:\n");
    CopyTree(ptree,ptree_copy);
    getch();
    }
    Dương Nhật Tân
    dnhattan1910@yahoo.com

  4. #4
    Ngày gia nhập
    07 2013
    Bài viết
    1

    Nó vẫn chạy chưa đuọc các ban có ai giúp mình k minh dang cần

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn