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

Đề tài: Nhập xuất 1 cây nhị phân có n node

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

    Mặc định Nhập xuất 1 cây nhị phân có n node

    chả là vì thầy em chỉ dạy mấy cái hàm mà chả biết nhập vào 1 cây nhị phân như thế nào có ai giúp ko
    cho trước 1 mảng a có n phần tử
    nhập xuất 1 cây nhị phân nó n node. mỗi nút lưu 1 phần tử của mảng ?. phải nhập xuất như vậy trước rồi mới viết hàm làm mấy cái thao tác khác.

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Code:
    for(int i=0;i<n;i++)
       insertNode(BST,A[i]) ;
    Code:
    void insertNode(Tree* &pRoot, int n)
    {
        if(pRoot==NULL)
            createNode(pRoot,n) ;
        else
            if(pRoot->key < n)
                insertNode(pRoot->pR,n) ;
            else 
                if(pRoot->key > n)
                    insertNode(pRoot->pL,n) ;
              
    }
    đọc thử xem có xài đc ko hen
    HT117-5277

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

    bạn ơi đại loại như là nhập vào 1 cây với các nút là 1 phần tử kiểu int
    hàm nhập là thế nào sao đó mới duyệt LNR hay NLR gì đó

  4. #4
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi bapxaotom Xem bài viết
    bạn ơi đại loại như là nhập vào 1 cây với các nút là 1 phần tử kiểu int
    hàm nhập là thế nào sao đó mới duyệt LNR hay NLR gì đó
    ý bạn là seo.code mình viết đó ko pải là hàm nhập à.còn LNR vs NLR thì pn viết thử đi chứ
    HT117-5277

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

    bạn xem dùm mình code này với. mình làm như bạn mà nó ko xuất ra đc. fix dùm mình nha
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    typedef struct node
    {
    	int data;
    	node *left,*right;
    };
    node* ptree;
    void init(node* &ptree)
    {
    	ptree=NULL;
    }
    void createNode(node* ptree,int x)
    {
    	if(ptree==NULL) return;
    	node* p=new node;
    	p->data=x;
    	p->left=NULL;
    	p->right=NULL;
    }
    void insertNode(node* &ptree, int n)
    {
        if(ptree==NULL) 
            createNode(ptree,n);
        else
            if(ptree->data < n)
                insertNode(ptree->right,n) ;
            else 
                if(ptree->data > n)
                    insertNode(ptree->left,n) ;
              
    }
    void nhap(node* &ptree)
    {
    	int n;
    	int x;
    	printf("nhap tong so nut: ");
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    	{
    		printf("\nNhap nut %d: ",i+1);
    		scanf("%d",&x);
    		insertNode(ptree,x);
    	}
    }
    void LNR(node* ptree)
    {
    	if(ptree==NULL) return;
    	printf("\t%d",ptree->data);
    	LNR(ptree->left);
    	LNR(ptree->right);
    }
    main()
    {
    	node* ptree;
    	init(ptree);
    	nhap(ptree);
    	LNR(ptree);
    	getch();
    }

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

    Mặc định Nhập xuất 1 cây nhị phân có n node

    Trích dẫn Nguyên bản được gửi bởi bapxaotom Xem bài viết
    bạn xem dùm mình code này với. mình làm như bạn mà nó ko xuất ra đc. fix dùm mình nha
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    typedef struct node
    {
    	int data;
    	node *left,*right;
    };
    node* ptree;
    void init(node* &ptree)
    {
    	ptree=NULL;
    }
    void createNode(node* ptree,int x)
    {
    	if(ptree==NULL) return;
    	node* p=new node;
    	p->data=x;
    	p->left=NULL;
    	p->right=NULL;
    }
    void insertNode(node* &ptree, int n)
    {
        if(ptree==NULL) 
            createNode(ptree,n);
        else
            if(ptree->data < n)
                insertNode(ptree->right,n) ;
            else 
                if(ptree->data > n)
                    insertNode(ptree->left,n) ;
              
    }
    void nhap(node* &ptree)
    {
    	int n;
    	int x;
    	printf("nhap tong so nut: ");
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    	{
    		printf("\nNhap nut %d: ",i+1);
    		scanf("%d",&x);
    		insertNode(ptree,x);
    	}
    }
    void LNR(node* ptree)
    {
    	if(ptree==NULL) return;
    	printf("\t%d",ptree->data);
    	LNR(ptree->left);
    	LNR(ptree->right);
    }
    main()
    {
    	node* ptree;
    	init(ptree);
    	nhap(ptree);
    	LNR(ptree);
    	getch();
    }
    bạn sửa lại như thế này:
    Code:
    node *createNode(node* ptree,int x)
    {
    	node* p=new node;
    	p->data=x;
    	p->left=NULL;
    	p->right=NULL;
    	return p;
    }
    void insertNode(node* &ptree, int n)
    {
    	node *p=new node;
        if(ptree==NULL)
    	{
    	 
            p=createNode(ptree,n);
            ptree=p;
    	}
        else
            if(ptree->data < n)
                insertNode(ptree->right,n) ;
            else 
                if(ptree->data > n)
                    insertNode(ptree->left,n) ;
              
    }

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

  1. ADO.NET Node cha và node con không hiển thị đúng trong TreeView
    Gửi bởi vyclarks trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 13
    Bài viết cuối: 10-09-2013, 02:53 PM
  2. Cấu trúc dữ liệu Tìm thuật toán trả về Node cha của một Node bất kỳ trong cây nhị phân tìm kiếm
    Gửi bởi A10932 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 10
    Bài viết cuối: 20-08-2013, 12:30 PM
  3. Thêm và sửa 1 node bên dưới 1 node cụ thể trong XML bằng c#
    Gửi bởi yakumo2010 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 05-02-2013, 03:41 PM
  4. Bài tập C++ chuyển câu lệnh này p=(node) malloc(sizeof(node)); qua c++ như thế nào vậy mấy anh
    Gửi bởi trankien trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 34
    Bài viết cuối: 14-05-2011, 10:10 PM
  5. hàm bool operator !=(Node node1, Node node2) dùng trong trường hợp nào?
    Gửi bởi gacon09cntt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 13-12-2010, 03:31 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