首页 > 其他 > 详细

线性表操作(二)

时间:2019-09-26 23:44:46      阅读:93      评论:0      收藏:0      [点我收藏+]

删除单链表中最小值节点

void Deletemin(LinkList &L){
    LinkList p,q;
    LinkList minpre,pre;
    pre=L;//最小值节点的前驱
    q=pre->next;
    minpre=pre;
    p=q;
    int temp=q->data;
    while(q!=NULL){
        if(p->data>q->data){
            p=q;
            minpre=pre;
        }
        pre=q;
        q=q->next;
    }
    minpre->next=p->next;
    free(p);
}

删除单链中所有值为X的节点

void  DeleteX(LinkList &L,Elemtype e){
    LinkList p,q,r;
    p=L;
    q=L->next;
    while(q){
        if(q->data==e){
            p->next=q->next;
            r=q;
            free(r);
            q=q->next;
        }
        else{
            q=q->next;
            p=p->next;
        }
    }
}

将单链表逆置,且空间复杂度为0(1)

void Reverse(LinkList &L){
    LinkList p,q;
    p=L->next;
    L->next=NULL;
    while(p){
        q=p->next;
        p->next=L->next;
        L->next=p;
        p=q;//运用头插法,依次将节点插入到头结点之后
    }
}

 

线性表操作(二)

原文:https://www.cnblogs.com/Yshun/p/11594720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!