设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表BC,其中B表的结点为A表中值小于0的结点,而C表的结点为A表中值大于0的结点(链表A中的元素为非零整数,要求BC表利用A表的结点)。(代码
Posted Aiden (winner)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表BC,其中B表的结点为A表中值小于0的结点,而C表的结点为A表中值大于0的结点(链表A中的元素为非零整数,要求BC表利用A表的结点)。(代码相关的知识,希望对你有一定的参考价值。
分析:
B表的头结点使用原来A表的头结点,为C表新申请的一个结点。从A表的第一个结点开始,依次取其每一个结点p,判断结点p的值是否小于0,利用前插法,将小于0的结点插入B表,大于等于0的结点插入C表。
void Discompose(LinkList A)
B=A;
B->next=NULL; //B表初始化
C=new LNode; //为C申请结点空间
C->next=NULL; //C初始化为空表
P=A->next; //p为工作指针
while(p!=NULL)
r=p->next; //暂存p的后继
if(p->data<0)
p->next=B->next;
B->next=p; //将小于0的结点链入B表,前插法
else
p->next=c->next;
c->next=p; //将大于等于0的结点链入C表,前插法
p=r; //p指向新的处理结点
以上是关于设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表BC,其中B表的结点为A表中值小于0的结点,而C表的结点为A表中值大于0的结点(链表A中的元素为非零整数,要求BC表利用A表的结点)。(代码的主要内容,如果未能解决你的问题,请参考以下文章
设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表BC,其中B表的结点为A表中值小于0的结点,而C表的结点为A表中值大于0的结点(链表A中的元素为非零整数,要求BC表利用A表的结点)。(代码
线性表练习之Example032-将一个带头结点的单链表 A 分解成两个单链表 A 和 B,其中 A 表只包含原表中序号为奇数的元素,B 表中只包含原表中序号为偶数的元素