算法--链表

算法

  • 链表
    有一个带头节点的单链表,设计一个算法使其元素递增有序。

    • 使用直接插入算法,是该题正确的做法。
    /*思路:直接插入*/
    void IncreaseLinkList(LinkList &L)
    {
        LNode *p,*r,*pre;//*r用来存放待遍历的元素!!!
        L->next=NULL;
        p=L->next;//物理结构上的连接  下面还要继续使用p与r
        r=p->next;//防止链表断裂
        p=r;//往后移动一位
        //现在L链表中,只有p这一个结点,p既是第一个结点也是最后一个结点。r是剩下的链表中的第一个元素
        //下面进行比较插入
        while(p!=null)
        { 	   r=p->next;
      		   pre=L;//有序表
            while(pre->next!=null&&pre->next->data<p->data)//r中的值比第一个结点的值小 
            	pre=pre->next;//循环结束的条件 到了链表结尾,当前链表中每一个值都比插入值小,或者就是找到那个位置了,在两个值中间。
         		p->next=pre->next;//如果当前p的值比l的第一个值大,直接插入!!!
         		pre->next=p;
         		p=r;
    	}   
    }
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值