30/09/2018, 21:43

Hỏi về hàm hủy trong lớp cây nhị phân tìm kiếm

[//De: Cay nhi phan tim kiem
#include<iostream>

using namespace std;

//Khai bao lop
class bts
{
    private:
        struct node
        {
            int infor;
            node *LPTR,*RPTR;
        }*F;
    public:
        bts();
        ~bts();
        void btinsert(int x);
        void btsearch(int x);
        int btempty();
        void display();
        void lrn(node *q);
};

//===chuong trinh chinh===
int main()
{
    bts b;
    int tg,x;
    char trl,q;
    
    while(1)
    {
        do
        {
            cout<<"Nhap vao 1 gia tri: ";cin>>tg;
            b.btinsert(tg);
            cout<<"
Ban co muon nhap tiep khong(c/k): ";
            cin>>trl;
        }
        while(trl=='c'||trl=='C');
    
    
        cout<<"Danh sach cay la: 
";
        b.display();
    
        cout<<"
Nhap gia tri can tim kiem: ";cin>>x;
        b.btsearch(x);
    
        cout<<"
Danh sach cay sau khi tim kiem: 
";
        b.display();
        
        cout<<"
An mot phim bat ky de tiep tuc!
An 'q' de thoat
";cin>>q;
        if(q=='q') break;
    }                                
    
    cout<<endl;
    return 0;
}
//===dinh nghia ham===

bts::bts():F(NULL)
{
}
//----------------
bts::~bts()
{
}
//----------------
void bts::btinsert(int x)
{
    //Tao mot nut moi
    node *N=new node;
    N->infor=x;
    N->LPTR=N->RPTR=NULL;
    
    //Chen node vao cay
    if(F==NULL) F=N;
    else
    {
        //Tim vi tri node them vao
        node *P=F,*Q;
        while(P)
        {
            Q=P;
            if(P->infor==x) 
            {
                cout<<x<<" da ton tai trong cay! Khong them duoc :) ";
                return;
            }
            else if(P->infor>x) P=P->LPTR;
                else P=P->RPTR;
        }
        
        //Chen node 
        if(Q->infor>x) Q->LPTR=N;
        else Q->RPTR=N;
    }
}
//----------------
void bts::btsearch(int x)
{
    node *P=F;
    while(P)
    {
        if(P->infor==x) break;
        else if(P->infor>x) P=P->LPTR;
            else P=P->RPTR;
    }
    if(P)
        cout<<"X ton tai trong cay";
    else 
    {
        cout<<x<<" khong ton tai trong cay thuc hien chen vao cay";
        btinsert(x);
    }
}
//---------------
int bts::btempty()
{
    if(F==NULL) return 1;
    return 0;
}

//----------------
void bts::lrn(node *q)
{
    if(q)
    {
        lrn(q->LPTR);
        lrn(q->RPTR);
        cout<<" "<<q->infor<<" ";
    }
}
void bts::display()
{
    lrn(F);
}
Bùi Văn Chương viết 23:50 ngày 30/09/2018

tiền bối nào viết giúp hoặc chỉ mình hàm hủy với

X viết 23:59 ngày 30/09/2018

Trùng với: Hỏi về hàm hủy trong lớp cây nhi phận tìm kiếm C++
@Bui_Van_Chuong tránh tình trạng spam câu hỏi nhé

Bài liên quan
0