2.20.c

来自「部分高校使用anyview编程测试数据结构习题,此代码为数据结构题集(c语言版)」· C语言 代码 · 共 34 行

C
34
字号
2.20②  同2.19题条件,试写一高效的算法,删除表中所
有值相同的多余元素 (使得操作后的线性表中所有元素的
值均不相同) 同时释放被删结点空间,并分析你的算法的
时间复杂度。

实现下列函数:
void Purge(LinkList &L);

单链表类型定义如下:
typedef struct LNode{
    ElemType      data;
    struct LNode *next;
} LNode, *LinkList;
void Purge(LinkList &L)
{
    LinkList p,q;
    p=L;q=L->next;
    if(!q);
    else {p=q;
          q=q->next;}
    while(q)
       {
        if(p->data==q->data)
           {p->next=q->next;
            free(q);
            q=p->next;
           }
        else
           {p=q;
            q=q->next;
           }
       }    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?