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

25.C语言 数据结构一:链表

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

25.C语言 数据结构一:链表

#include 
#include 

typedef struct Person{
    char *id;
    char *name;
    struct Person *next;
}Node;

int main(void)
{
    Node *p1,*p2,*p3,*head,*p;
    p1 = (Node*)malloc(sizeof(Node));
    p2 = (Node*)malloc(sizeof(Node));
    p3 = (Node*)malloc(sizeof(Node));
    p1->id="191100153";p1->name="king";
    p2->id="191100152";p2->name="mei";
    p3->id="191100151";p3->name="gege";

    head=p1;
    p1->next=p2;
    p2->next=p3;
    p3->next=NULL;

    p = head;
    while(p!=NULL){
        printf("%s,%sn",p->id,p->name);
        p=p->next;
    }
    return 0;
}

执行结果如下:

 

增加节点

技巧:使用p指针指向要插入位置的前一个节点处,x->next=p->next,让x的下一个结点指向p指针的下一个位置,最后让p->next=x;

Node *x=(Node*)malloc(sizeof(Node));
    x->id="5201314";x->name="kiki";

    p = p2;
    x->next=p->next;
    p->next=x;
#include 
#include 

typedef struct Person{
    char *id;
    char *name;
    struct Person *next;
}Node;

int main(void)
{
    Node *p1,*p2,*p3,*head,*p;
    p1 = (Node*)malloc(sizeof(Node));
    p2 = (Node*)malloc(sizeof(Node));
    p3 = (Node*)malloc(sizeof(Node));
    p1->id="191100153";p1->name="king";
    p2->id="191100152";p2->name="mei";
    p3->id="191100151";p3->name="gege";

    head=p1;
    p1->next=p2;
    p2->next=p3;
    p3=NULL;
    //新增节点
    Node *x=(Node*)malloc(sizeof(Node));
    x->id="5201314";x->name="kiki";

    p = p2;
    x->next=p->next;
    p->next=x;

    p = head;
    while(p!=NULL){
        printf("%s,%sn",p->id,p->name);
        p=p->next;
    }
    return 0;
}

执行结果如下:

 

删除结点

//删除节点
    Node *q;
    p = p2;
    q = p->next;
    p->next = q->next;
    free(q);

 

#include 
#include 

typedef struct Person{
    char *id;
    char *name;
    struct Person *next;
}Node;

int main(void)
{
    Node *p1,*p2,*p3,*head,*p;
    p1 = (Node*)malloc(sizeof(Node));
    p2 = (Node*)malloc(sizeof(Node));
    p3 = (Node*)malloc(sizeof(Node));
    p1->id="191100153";p1->name="king";
    p2->id="191100152";p2->name="mei";
    p3->id="191100151";p3->name="gege";

    head=p1;
    p1->next=p2;
    p2->next=p3;
    p3=NULL;
    //新增节点
    Node *x=(Node*)malloc(sizeof(Node));
    x->id="5201314";x->name="kiki";

    p = p2;
    x->next=p->next;
    p->next=x;

    //删除节点
    Node *q;
    p = p2;
    q = p->next;
    p->next = q->next;
    free(q);

    p = head;
    while(p!=NULL){
        printf("%s,%sn",p->id,p->name);
        p=p->next;
    }
    return 0;
}

执行结果如下:

 kiki给删除了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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