diễn đàn khoa công nghệ thông tin SGU-DCT1101
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

diễn đàn khoa công nghệ thông tin SGU-DCT1101

chào mừng bạn đến với web truongnguyen92 chúc bạn một ngày vui vẻ và gặp nhiều may mắn.THẠCH THÊN
 
Trang ChínhGalleryLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 nhập 1 mảng sắp xếp mảng tăng dần (dùng cây)

Go down 
Tác giảThông điệp
thachthen_it
Admin
Admin
thachthen_it


Tổng số bài gửi : 53
Reputation : 0
Join date : 19/05/2011
Age : 32
Đến từ : trà vinh

nhập 1 mảng sắp xếp mảng tăng dần (dùng cây) Empty
Bài gửiTiêu đề: nhập 1 mảng sắp xếp mảng tăng dần (dùng cây)   nhập 1 mảng sắp xếp mảng tăng dần (dùng cây) I_icon_minitimeSun May 29, 2011 8:27 pm

GIẢI THUẬT:trước tiên từ mảng đã cho ta tạo tìm cách chèn từng phần từ vào cây sao cho thõa tính chất cây nhị phân tìm kiếm BST( Binary Search Tree): duyệt cây theo Left-Node-Right ta được mảng tăng dần
Code:

#include<conio.h>
#include<iostream.h>
#include<alloc.h>
#include<iomanip.h>
struct node
{
   int infor;
   struct node *left,*right;
};
typedef node *Tree;
Tree root;
int InsertNode(Tree &root,int key);
void Initialize_BST(Tree &root);
int LNR(Tree root);
main()
{
   Initialize_BST(root);
   LNR(root);
}
int InsertNode(Tree &root,int key)
{
   if(root!=NULL)
      {
         if(root->infor==key)//node da ton tai
            return 0;
            if(root->infor>key)
               return InsertNode(root->left,key);
            return InsertNode(root->right,key);
      }
   else
      {
         root=new node; //neu root==NULL cap phat bo nho cho node
         if(root->infor==NULL)
            return -1;//khong du bo nho cap phat
         root->infor=key;
         root->left=root->right=NULL;             
                                      return 1;//cap phat thanh cong

      }
}
void Initialize_BST(Tree &root)
{
   int n,key;
   cout<<"nhap so luong node muon tao: ";cin>>n;
   for(int i=1;i<=n;i++)
      {
         cout<<"\tnode thu "<<i<<"= ";
         cin>>key;
         InsertNode(root,key);
      }
}
int LNR(Tree root)
{
   if(root!=NULL)
      {
         LNR(root->left);
         cout<<setw(4)<<root->infor;
         LNR(root->right);
         return 1;//duyet thanh cong
      }
   return 0;//tra ve 0 khi root==NULL
}
Về Đầu Trang Go down
https://truongnguyen92.forumvi.com
 
nhập 1 mảng sắp xếp mảng tăng dần (dùng cây)
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» nhập 1 mảng sắp xếp mảng giảm dần (dùng cây)
» tìm xem 1 phần tử có nằm trong mảng không(dùng cây)
» trộn 2 mảng tăng dân thành mảng mới giảm dần
» tìm 1 giá trị trong mảng có vị trí xa x nhất(x nhập từ bàn phím)
» tìm 1 giá trị trong mảng có vị trí gần x nhất(x nhập từ bàn phím)

Permissions in this forum:Bạn không có quyền trả lời bài viết
diễn đàn khoa công nghệ thông tin SGU-DCT1101 :: góc lập trình :: cấu trúc dữ liệu và giải thuật :: Tree-
Chuyển đến