单链表应用实例

/*单链表L=a1,b1,a2,b2,a3,b3,拆分成L=a1,a2,a3,L2=b3,b2,b1*/
void split(LinkNode*& L, LinkNode*& L1, LinkNode*& L2) { LinkNode* p, * q, * r; p = L->next; L1 = L; r = L1; L2 = (LinkNode*)malloc(sizeof(ElemType)); L2->next = NULL; while (p != NULL) { r->next = p; r = p; p = p->next; q = NULL; if (p != NULL) { q = p->next; p->next = L2->next; L2->next = p; } } r->next = NULL; }

  删除单链表L中元素最大节点

void delmaxnode(LinkNode*& L)
{
    LinkNode* p, * pre, * max_p, * max_pre;
    pre = L;
    p = L->next;
    max_pre = pre;
    max_p = p;
    while (p != NULL)
    {
        if (p->data > max_p->data)
        {
            max_p = p;
            max_pre = pre;
        }
        pre = pre->next;
        p = p->next;

    }
    max_pre->next = max_p->next;
    free(max_p);
}

 元素递增有序排列

void sort(LinkNode*& L)
{
	LinkNode* p, * q, * pre;
	p = L->next->next;
	L->next->next = NULL;
	
	while (p != NULL)
	{
		pre = L;
		q = p->next;
		while (pre->next != NULL && pre->next->data < p->data)
		{
			pre=pre->next;
		}
		
		p->next = pre->next;
		pre->next = p;
		p = q;
	}
}

  

 

转载于:https://www.cnblogs.com/KIROsola/p/11280303.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值