栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

在带头结点的单链表L中,删除所有值为x的节点,并释放其空间,假设值为x的 不唯一,编写算法实现以上操作(c语言实现)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在带头结点的单链表L中,删除所有值为x的节点,并释放其空间,假设值为x的 不唯一,编写算法实现以上操作(c语言实现)

在带头结点的单链表L中,删除所有值为x的节点,并释放其空间,假设值为x的 不唯一,编写算法实现以上操作

具体实现操作
link *deletx(link *p,int elem){
    link *t = p->next;
    link *pret = p;//建立两个指针,一个指向要删除的结点,一个指向要删除的前驱结点
    link *del;
    while(t != NULL){
        if(t->data == elem){
            del = t;//临时储存要删除的值,以防丢失
            t = t->next;
            pret->next = t;//删除了该结点
            free(del);//释放空间
        }else {//同步后移
            pret = t;
            t = t->next;
        }
    }
    return p;
}
完整代码实现

此段代码实现创建单链表和输出,可视化删除x 的结果。


#include 
#include 

typedef struct LINK//定义结构链表
{
    int data;//数据域
    struct LINK *next;//指针域
}link;

link * initlink();
void putout(link *p);
link *deletx(link *p,int elem);

int main(){
    printf("请输入n项数值初始化链表,输入999结束:n");
    link *p = initlink();
    printf("输入要删除的x值:n");
    int x;
    scanf("%d",&x);
    p = deletx(p,x);
    putout(p);

    return 0;
}

link * initlink(){//尾插法初始化一个单链表
    link * p=(link*)malloc(sizeof(link));//创建头结点
    link *temp = p;
    int i;
    scanf("%d",&i);
    while(i != 999){
        link *a = (link*)malloc(sizeof(link));
        a->data = i;
        temp->next = a;
        temp = a;
        scanf("%d",&i);
    }
    temp->next = NULL;
    return p;
}

void putout(link *p){
    link* temp=p;
    while (temp->next) {
        temp=temp->next;
        printf("%d ",temp->data);
    }
    printf("n");
}

link *deletx(link *p,int elem){
    link *t = p->next;
    link *pret = p;//建立两个指针,一个指向要删除的结点,一个指向要删除的前驱结点
    link *del;
    while(t != NULL){
        if(t->data == elem){
            del = t;//临时储存要删除的值,以防丢失
            t = t->next;
            pret->next = t;//删除了该结点
            free(del);//释放空间
        }else {//同步后移
            pret = t;
            t = t->next;
        }
    }
    return p;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号