(末尾实例)
(1)结点之间的链接方式如图:
上一个结点的指针储存有下一个结点的地址,因而通过指针的方式实现两个结点的链接。
想要删除某个结点,只需要让上一个节点的指针指向要删除的结点的下一个结点即可。
但想要删除首个或是末个结点,则需要有另外的操作。
(2)、删除首个结点:
静态链表:令下一个结的指针为head,然后从head开始输出即可。点
动态链表:直接在输出时跳过本次循环即可:
free(p):代表释放p指针所指的空间
(3)、删除中间结点:
静态链表:令上一个指针指向该结点的下一个地址,比如删除第二个结点,则令第一个结点的结构体类型指针指向第三个结点的地址。
动态链表:利用循环,输出时跳过要删除的结点的那次循环即可;比如删除第二个结点,则输出时循环到第二个结点就跳过。因为不能先改变某个结点的指针值,所以可以定义一个整形变量,变量值随着循环次数的增加而增加,最后变量值与要删除的结点值相等即可跳过循环。
(4)、删除最后一个结点
静态链表:令前一个结点的指针为空指针;
动态链表:输出时循环完前一个即结束循环即可;例如删除第五个,则循环输出完第四个后用break结束循环即可;
2、链表实现学生相关信息的输入输出
静态链表
动态链表: