Loading... # 尾部插入 * 继续上一篇文章的后续 <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://blog.fivk.cn/archives/142.html" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-image bg" style="background-image: url(https://blog.fivk.cn/usr/uploads/2021/01/2549077484.jpg);background-size: cover;"></div> <div class="inner-content" > <p class="inser-title">【C】链表_静态链表 和 动态链表(头部插入)</p> <div class="inster-summary text-muted"> 简介:定义:链表是一种物理储存上非连续,结构元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性储存结构。特点:... </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> 我们修改link里边的insert_link函数,应为这就是插入函数嘛。。直接改 * 寻找尾节点 * 用尾节点pb连接上pi ![示意图](https://blog.fivk.cn/usr/uploads/2021/01/3302677901.jpg) 哎,所以链表这一块真的只有多敲代码了。 原来的函数STU* insert_link(STU *head,STU tmp)修改为 ```C //链表的尾部插入 STU* insert_link(STU* head, STU tmp) { //1、申请待插入的节点 STU* pi = (STU*)calloc(1, sizeof(STU)); if (pi == NULL) { perror("calloc"); return head; } //2、将tmp的数据赋值到 *pi *pi = tmp; pi->next = NULL; //3、将节点插入到链表的尾部 if (head == NULL) { //链表不存在 head = pi; } else { //链表存在 //a、寻找链表的尾节点 STU* pb = head; while (pb->next != NULL) //如果不是尾节点 pb = pb->next; //pb就指向下一个节点 //b、用尾节点 pb 链接上 插入的节点pi pb->next = pb; } return head; } ``` * 头部插入和尾部插入打印出来是不一样的。 * 最重要的是第3步,可以对比一下 link.c ```C #include<stdlib.h> #include<stdio.h> #include "link.h" void stu_help(void); //链表的尾部插入 STU* insert_link(STU* head, STU tmp) { //1、申请待插入的节点 STU* pi = (STU*)calloc(1, sizeof(STU)); if (pi == NULL) { perror("calloc"); return head; } //2、将tmp的数据赋值到 *pi *pi = tmp; pi->next = NULL; //3、将节点插入到链表的尾部 if (head == NULL) { //链表不存在 head = pi; } else { //链表存在 //a、寻找链表的尾节点 STU* pb = head; while (pb->next != NULL) //如果不是尾节点 pb = pb->next; //pb就指向下一个节点 //b、用尾节点 pb 链接上 插入的节点pi pb->next = pb; } return head; } void print_link(STU* head) { if (head == NULL) { //链表不存在 printf("link not find\n"); return; } else { //遍历 STU* pb = head; while (pb != NULL) { printf("%d %s %f\n", pb->num, pb->name, pb->score); //pb指向下一个节点 pb = pb->next; } } return; } ``` <iframe class="iframe_video" src="//player.bilibili.com/player.html?aid=372528286&bvid=BV1XZ4y1G7No&cid=249273846&page=56" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> <div class="tip inlineBlock error"> 两点半了,我还能肝一篇。。。 </div> 最后修改:2021 年 03 月 14 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏