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

Đề tài: Code cây nhị phân, hàm insert. Mọi người giải thích giùm?

  1. #1
    Ngày gia nhập
    08 2008
    Nơi ở
    ha noi
    Bài viết
    79

    Mặc định Code cây nhị phân, hàm insert. Mọi người giải thích giùm?

    Đây là đoạn code cây nhị phân mình đang học nhưng mình ko hiểu lắm nhờ mọi người chỉ dùm mấy câu lệnh trong hàm này thank all.
    Code:
    void insert(NODE *tmp, NODE **root)
    {
    
      if (tmp->element < (*root)->element)
        if ((*root)->left))
          insert(tmp, &(*root)->left); 
        else
           (*root)->left = tmp;
      else
        if ((*root)->right))
          insert(tmp, &(*root)->right);
        else
           (*root)->right = tmp;
    }

  2. #2
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Đưa 1 đoạn ngắn lên như thế này thật là khó đỡ
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Đoạn tô đen đó là khi nó không còn nhánh con nào nữa. Nếu còn thứ cứ đệ qui gọi tiếp, trái rồi lại phải...ect. Nếu không thì chỉ việc gán giá trị thôi, tập chay tay đi cậu sẽ hiễu kĩ hơn.

  4. #4
    Ngày gia nhập
    08 2008
    Nơi ở
    ha noi
    Bài viết
    79

    Mình cũng mới học về cây bởi vậy cũng chưa thạo lắm . Mình vừa code 1 đoạn code ngắn gồm nhập và duyệt cây theo hướng node left right nhưng khi chạy ctrinh nó bị bung luôn out luôn ra khỏi dos mình ko biết nó sai ở chỗ nào nhờ mọi người fix dùm
    Code:
    #include "stdio.h"
    #include "conio.h"
    #include "stdlib.h"
    
    struct node
    	{
    		int infor;
    		struct node *left;
    		struct node *right;
    	};
    
    
    void insear(node *root,node *p)
    	{
    		if(p->infor<root->infor)
    		if(root->left)	insear(root->left,p);
    			else	root->left=p;
    		else if(root->right)	insear(root->right,p);
    			else	root->right=p;
    
    	}
    
    void nhap_cay(node *root)
    	{
    		int e;
    		node *p;
    		root=NULL;
    		do
    		{
    			printf("Nhap vao cay(nhap nut -1 de ket thuc): ");
    			scanf("%d",&e);
    			if(e!= -1)
    				{
    					p=(node*)malloc(sizeof(node));
    					p->infor=e;
    					p->left=NULL;
    					p->right=NULL;
    					if(root==NULL)	root=p;
    				}
    		else
    			insear(root,p);
    		}while(e!= -1);
    	}
    
    void NLR(node *root)
    	{
    		if(root!=NULL)
    			{
    				printf(" %d ",root->infor);
    				NLR(root->left);
    				NLR(root->right);
    			}
    	}
    
    
    
    
    void main(void)
    	{
    		clrscr();
    		node *root;
    		nhap_cay(root);
    		NLR(root);
    		getch();
    	}

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

  1. code hệ điều hành. Giải thích giùm e này với
    Gửi bởi chuyentinh_t2thezoo trong diễn đàn Thắc mắc chung
    Trả lời: 3
    Bài viết cuối: 16-12-2010, 10:35 PM
  2. Nhờ giải thích giùm mình đoạn code này
    Gửi bởi vietwow trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 22-07-2009, 12:23 PM
  3. Code sắp xếp ma trận, giải thích giùm em với
    Gửi bởi kimtaitokk trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 28-04-2009, 04:32 PM
  4. Giải thích giùm mình đoạn code
    Gửi bởi NoName123 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 04-01-2008, 10:04 PM
  5. xin hãy giải thích đoạn code này giùm em
    Gửi bởi tuvonc trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 23-03-2007, 04:36 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