zml2695414703 level
获赞
4
粉丝
0
关注
4
看过 TA
9
广西科技大学
2024
算法工程师
IP属地:四川
暂未填写个人简介
私信
关注
const int N=1e5+6;int pile[N],data[N];int idx=1,n;for(int i=1;i    pile[idx]=data[i], idx++;}int ind=idx-1;while(2*ind>=idx) ind--;       // 找到最后一个非叶子节点的下标void down_adjust(int pa){    if(2*pa if(pile[2*pa]>pile[2*pa+1]){ if(pile[2*pa]>pile[pa]){                exchange(pa,2*pa);                down_adjust(2*pa);            }        }        else{ if(pile[2*pa+1]>pile[pa]){                exchange(pa,2*pa+1);                down_adjust(2*pa+1);            }        }    }    if(2*pa=idx){ if(pile[2*pa]>pile[pa]){            exchange(pa,2*pa);            down_adjust(2*pa);        }    }}// 遍历调整for(int i=ind;i>=1;i--){    int p=pile[i],l,r;    if(2*i+1    else l=pile[2*i], r=pile[i]-1; if(l>p && l>r){        exchange(i,2*i);        down_adjust(2*i);    } if(r>p && r>l){        exchange(i,2*i+1);        down_adjust(2*i+1);    }}
0 点赞 评论 收藏
分享
链表插入,删除,链表有头节点。在第一个值为a前插入b。void insert_node(node *head,int a,int b){         node *t=head; while(t->next!=nullptr){ if(t->next->x==a){            break;        } t=t->next;    } if(t->next==nullptr){        node *tt=new node(); tt->x=b; t->next=tt;    }    else{        node *tt=new node(); tt->x=b; tt->next=t->next; t->next=tt;    }}删除第一个值为b的节点。void delete_node(node *head,int b){    node *t=head; while(t->next!=nullptr){ if(t->next->x==b){            break;        } t=t->next;    } if(t->next!=nullptr){ node *tt=t->next; if(tt->next==nullptr){ t->next=nullptr;            free(tt);        }        else{ t->next=tt->next;            free(tt);        }    }}
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务