数据结构之链表A分解为结点小于零的链表B、结点大于零的链表C

来源:互联网 发布:婚庆效果图设计软件 编辑:程序博客网 时间:2024/05/22 00:16

题目

设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A的元素类型为整型,要求B、C表利用A表的结点)。

代码

void Decompose(LinkList La,LinkList &Lb,LinkList &Lc)//这里要传值,要加引用符号否则只是把新建的形参Lb和Lc值改了{    LinkList p = La->next;    LinkList q = Lb = ( LinkList )malloc(sizeof(LNode));    //这里原来写的就是一行LinkList q,r;没有为qr分配空间,r->next更是子虚乌有的    LinkList r = Lc = ( LinkList )malloc(sizeof(LNode));    while(p)    {        if(p->data < 0)        {            q->next = p;            q = p;            p = p->next;        }        else if(p->data > 0)        {            r->next = p;            r = p;            p = p->next;        }        else            p = p->next;//这里没有考虑到,注意    }           q->next = NULL;        r->next = NULL;}
0 0
原创粉丝点击