【数据结构】二叉搜索树,AVL作业存档-创新互联

目录

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的高阳网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

A:二叉排序树 - 文本输出

B:销售排行榜

C:   二叉排序树-平衡因子

D: 案例 1-1.1 二分查找

E: 进阶实验 1-3.1:两个有序序列的中位数 


A:二叉排序树 - 文本输出

·上课写的

#includeusing namespace std;

struct BSTnode{
    int data;
    BSTnode*lc;
    BSTnode*rc;
    int level;
};

BSTnode* insert(BSTnode* &B,int x)
{
    if(B==nullptr){
        B=new BSTnode;
        B->data=x;
        B->lc=B->rc=nullptr;
    //    cout<data<data>x){
        insert(B->lc,x);
    }else if(B->datarc,x);
    }
    return B;
}

void level(BSTnode* &B)
{
    queueQ;
    Q.push(B);
    B->level=0;
    while(!Q.empty())
    {
        BSTnode*node=Q.front();Q.pop();
        if(node->lc!=nullptr)
        {
            node->lc->level=node->level+1;
            Q.push(node->lc);
        }
        if(node->rc!=nullptr)
        {
            node->rc->level=node->level+1;
            Q.push(node->rc);
        }
    }

}
int Pre(BSTnode* &B,int level)
{
    if(B==nullptr){for(int i=0;ilevel;i++)
    cout<<"    ";
    cout<data<lc!=nullptr||B->rc!=nullptr)
    {
        Pre(B->lc,B->level+1);
        Pre(B->rc,B->level+1);
    }
    return 0;
}


int main()
{
    int n,x;cin>>n;
    BSTnode*B=nullptr;
    for(int i=0;i>x;
        insert(B,x);
    }
    level(B);
    Pre(B,0);
    return 0;
}

B:销售排行榜

·蓝了aaaaa

#includeusing namespace std;

struct item{
    string name;
    int time;
    int value;
};
item t[100000];
int cmp1(item a,item b)
{
    return a.nameb.time;
    else return a.name>name>>time>>price>>date)
    {
        t[i].name=name;
        t[i].time=time;
        t[i].value=price*time;
        i++;
    }
    sort(t,t+i,cmp1);
    for(int j=0;j

C:   二叉排序树-平衡因子

·平衡因子=左子树深度-右子树深度

#includeusing namespace std;

struct BSTnode{
    int data;
    BSTnode*lc;
    BSTnode*rc;
    int level;
};

BSTnode* insert(BSTnode* &B,int x)
{
    if(B==nullptr){
        B=new BSTnode;
        B->data=x;
        B->lc=B->rc=nullptr;
    //    cout<data<data>x){
        insert(B->lc,x);
    }else if(B->datarc,x);
    }
    return B;
}

void level(BSTnode* &B)
{
    queueQ;
    Q.push(B);
    B->level=0;
    while(!Q.empty())
    {
        BSTnode*node=Q.front();Q.pop();
        if(node->lc!=nullptr)
        {
            node->lc->level=node->level+1;
            Q.push(node->lc);
        }
        if(node->rc!=nullptr)
        {
            node->rc->level=node->level+1;
            Q.push(node->rc);
        }
    }

}
int getdepth(BSTnode* &B)
{
    if(B==nullptr)return 0;
    return max(getdepth(B->lc),getdepth(B->rc))+1;
}
int Pre(BSTnode* &B,int level)
{
    if(B==nullptr)
    {for(int i=0;ilevel;i++)
    cout<<"    ";
    cout<data<<"("<lc)-getdepth(B->rc)<<")"<lc!=nullptr||B->rc!=nullptr)
    {
        Pre(B->lc,B->level+1);
        Pre(B->rc,B->level+1);
    }
    return 0;
}


int main()
{
    int n,x;cin>>n;
    BSTnode* B=nullptr;
    for(int i=0;i>x;
        insert(B,x);
    }
    level(B);
    Pre(B,0);
    return 0;
}

D: 案例 1-1.1 二分查找

·不注意细节就会浪费很多很多时间

#includeusing namespace std;

int binary(int n,int a[],int x)
{
    int mid,l=0,r=n-1;
    while(r>=l)
    {
        mid=l+(r-l)/2;
        //cout<0;i--)
        {
            if(a[i]!=x)return i+2;
        }
         return 1;
        }
        else if(a[mid]>x)
        {
            r=mid-1;
        }
        else l=mid+1;
    }
    return -1;
}
int main()
{
    int n;cin>>n;
    int a[n];
    for(int i=0;i>a[i];
    int x;cin>>x;
    cout<

E: 进阶实验 1-3.1:两个有序序列的中位数 
#includeusing namespace std;

int main()
{
    int n;cin>>n;
    int a[n],b[n];
    for(int i=0;i>a[i];
    for(int i=0;i>b[i];
    if(n%2==0)
    cout<<(a[n/2-1]+b[n/2-1])/2;
    else
    cout<<(a[n/2]+b[n/2])/2;
    return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:【数据结构】二叉搜索树,AVL作业存档-创新互联
网站地址:http://pwwzsj.com/article/ddhseh.html