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

Đề tài: Thêm nút và In nút trong binary tree, ai giúp em với.

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    8

    Mặc định Thêm nút và In nút trong binary tree, ai giúp em với.

    Em có đoạn code sau, em muốn cho chương trình này sẽ thêm nút và in ra các nút trong cây nhị phân, nhưng chương trình lại không in ra cái gì hết, ai giúp em giải thích tại sao và sửa lại code giúp em, em xin cảm ơn.


    Code:
    #include<iostream>
    #include<conio.h>
    #include<iomanip>
    
    using namespace std;
    
    
    typedef struct nodet
    {
    	int data;
    	struct nodet* left;
    	struct  nodet* right;
    }node;
    
    typedef node *tree;
    
    int Inserttree(tree t, int x)
    {
    	if(t==NULL)
    	{
    		t=new node;
    		t->data=x;
    		t->left=NULL;
    		t->right=NULL;		
    	}
    	else
    	{	
    		if(t->data>x)
    			return Inserttree(t->left,x);
    		else if(t->data<x)
    			return Inserttree(t->right,x);
    	}
    }
    
    
    void treeLNR(tree t)
    {
    	if(t!=NULL)
    	{
    		treeLNR(t->left);
    		cout<<setw(4)<<t->data;
    		treeLNR(t->right);
    	}
    
    }
    
    void main()
    {
    	tree t=NULL;
    	Inserttree(t,1);
    	Inserttree(t,2);
    	Inserttree(t,3);
    	Inserttree(t,4);
    	Inserttree(t,5);
    	Inserttree(t,6);
    	Inserttree(t,7);
    	treeLNR(t);
    	cout<<endl;
    	getch();
    }
    Không Có Gì Hạnh Phúc Hơn Lập Trinh.

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    int Inserttree(tree t, int x)
    {
    if(t==NULL)
    {
    t=new node;
    t->data=x;
    t->left=NULL;
    t->right=NULL;
    }
    else
    {
    if(t->data>x)
    return Inserttree(t->left,x);
    else if(t->data<x)
    return Inserttree(t->right,x);
    }
    }
    Ko cài VS nên ko test được, bạn có thể đổi lại chỗ này:
    int Inserttree(tree t, int x)
    thành:
    int Inserttree(tree& t, int x)

    Test xem thử nhé.

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    554

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Ko cài VS nên ko test được, bạn có thể đổi lại chỗ này:
    int Inserttree(tree t, int x)
    thành:
    int Inserttree(tree& t, int x)

    Test xem thử nhé.
    Đúng oài. Như thế này thì sẽ ổn.
    Mình vừa debug xong tính post comment mà kidkid post trước rùi

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    8

    Àh, em quên mất, truyền tham chiếu, hichic, vậy mà cũng post lên để hỏi nữa, xấu hổ quá, hihi.
    Không Có Gì Hạnh Phúc Hơn Lập Trinh.

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Hi,
    Chỗ này bạn phải debug trước khi đi hỏi là đúng rồi.
    Mình hỏi lại bạn chỗ này nhé.

    Hàm này của bạn: Inserttree(tree t, int x)
    Thực ra là thế này: Ínerttree(node* t,int x).

    Vậy tại sao lại ko được ?
    Bạn xem rõ lại tí nhé.

    Cũng xem lại cách viết 1 chút, nếu return value là int thì ko hợp lý rồi.
    Thêm nữa bạn nên dùng InsertTree thay cho Inserttree.
    Hàm của bạn nên viết thế này:

    void/bool InsertTree(tree& t,const int& x);

    Nên chú ý coding style 1 chút.

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    8

    Mặc định Thêm nút và In nút trong binary tree, ai giúp em với.

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Hi,
    Chỗ này bạn phải debug trước khi đi hỏi là đúng rồi.
    Mình hỏi lại bạn chỗ này nhé.

    Hàm này của bạn: Inserttree(tree t, int x)
    Thực ra là thế này: Ínerttree(node* t,int x).

    Vậy tại sao lại ko được ?
    Bạn xem rõ lại tí nhé.

    Cũng xem lại cách viết 1 chút, nếu return value là int thì ko hợp lý rồi.
    Thêm nữa bạn nên dùng InsertTree thay cho Inserttree.
    Hàm của bạn nên viết thế này:

    void/bool InsertTree(tree& t,const int& x);

    Nên chú ý coding style 1 chút.

    Em cảm ơn anh, cách viết này của anh hay hơn và mang tính thống nhất hơn, an toàn hơn, hihi, em mới đọc tài liệu và viết theo cách hiểu của em nên không hay lắm.
    Không Có Gì Hạnh Phúc Hơn Lập Trinh.

Các đề tài tương tự

  1. Thêm 1 nút , Xóa 1 nút , Sửa 1 nút, duyệt danh sách theo liên kết phải, theo liên kết trái.
    Gửi bởi dodinhlong trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 23-05-2013, 11:51 AM
  2. Trả lời: 3
    Bài viết cuối: 11-04-2012, 09:26 AM
  3. Sự kiện Click nút Next và nút Previous trong code WMP dùng WMPLib
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 15-12-2010, 09:24 PM
  4. Không xóa được nút bất kỳ trong tree?
    Gửi bởi boy_popping trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 28-10-2010, 11:48 PM
  5. Chèn thêm nút vào tài liệu XML trong lập trình C#
    Gửi bởi baokhanhk28 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 14-12-2006, 04:56 PM

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