请设计用于将带头结点单链表A分解为两个同样结构的小型单链表B和C的方法:其中B列表包含所有小于零节点的数据项
发布时间
阅读量:
阅读量
**【题目分析】:
采用后插法将数值小于0的节点插入至Lb中,pre用于记录pa的前驱节点。当节点值小于0时,执行pre->next=pa->next的操作,从而实现对小于0元素的删除。若节点值大于0,则将pra设置为pa,并令pa指向其下一个节点,此时pre仍用于保存当前pa的前驱节点。
算法设计与实现
void Resolve(Linklist &La, Linklist &Lb)
{
Linklist pre = La;
Linklist pb = Lb;
Linklist pa = La;
pa = pa->next;
while (pa)
{
if (pa->date < 0)
{
Linklist p = new Lnode;
p = pa; //生成新节点
pre->next = pa->next; //删除小于0的节点,pre始终为pa的前驱
pa = pa->next; //pa后移
p->next = NULL; //后插法将元素插入Lb中
全部评论 (0)
还没有任何评论哟~
