C语言之链表

  1. 建立动态链表
    是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。
    思路:
    —1.设置3个指针变量head、p1、p2
    —2.循环方式用malloc函数开辟第1个结点。n=1
    p1、p2指向第1结点首地址输入数据,如果p1->num !=0,则head=p1结点链入链表,反之不链入
    —3.开辟第2个结点:n=2,p1指向第2结点首地址输入数据;如果p1->num !=0,链入2结点,即 p2->next=p1
    —4.为建立第3个结点做准备:p2=p1,腾出p1
    —5.重复⑶⑷两步开辟第3个结点,并链入链表
    —6.再开辟新结点,由于num数据为0,退出循环。
    并使p2->next=NULL,虽然p1指向新结点但没有链入链表。

  2. 输出链表
    思路:
    设一个指针变量p,找到链表第1个结点的地址(head的值),p指向该结点,输出结点各成员的数据,再p后移指向下一结点。

  3. 对链表的删除操作
    并不真从内存中抹掉,只是把它分离,再前后结点相链接。
    C语言之链表

  4. 对链表的插入操作
    思路:找到插入点后,将该点的next值指向新结点,并使新结点的next值等于断点后面结点的首地址。

C语言之链表

  1. 对链表的综合操作
    使用链表实现简单地增删查改功能。
    用main函数作主调函数,调用前述建立、输出、删除、插入结点的函数。