0


每日一题之带头单链表的插入

          ❤️坚持是一种品质❤️

作者:每天都要记得刷题(●’◡’●)
时间:2022/03/31
本篇绪论:本篇博客将介绍带头单向不循环链表的插入
本篇感悟:本篇涉及很多单链表的操作,算是实操一遍插入操作吧。
请添加图片描述

文章目录

题目介绍

本题用数组也可以做,但是我认为用单链表可以实战一下,巩固巩固单链表的基本操作。
在这里插入图片描述

拆解思路

//定义结构体结点(顺便起typedef别名)
// while()判断程序结束条件
// while()由n(个数)创建单链表
//遍历单链表寻找位置
//经典插入操作
//循环次数未知

具体代码

备注:详解在代码块中

#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>//定义结构体结点(顺便起typedef别名)typedefstructnode{int date;structnode* next;}Node;intmain(){int m, n;//定义一个结构结点
    Node* head,* end,* p,* q,* r;//q用来创建结点,其数据域存放着要插入的数据mscanf("%d%d",&m,&n);//n个数(结点),m是要插入的整型数据(date)// while()判断程序结束条件while(m !=0|| n !=0)//m和n同时为0表示程序结束,||相当于并联电路,只有两个都断开才能终结{//创建头结点
        head =(Node*)malloc(sizeof(Node));
        head->next =NULL;//创建单链表
        end = head;for(int i =1; i <= n; i++){
            
            p =(Node*)malloc(sizeof(Node));scanf("%d",&p->date);//感悟:单向链表的很多操作都是要两个指针一起,野辅联动。
            end->next = p;
            end = p;}
        end->next =NULL;//比数据域内容大小找插入位置//要一个指针才能找到那个位置,但是要俩个指针才能完成插入操作
        p = head->next;//循环次数未知用whilewhile(p->date < m){
            r = p;
            p = p->next;}//创建带插入的结点
        q =(Node*)malloc(sizeof(Node));
        q->date = m;//经典插入操作
        q->next = r->next;
        r->next = q;
        p = head->next;//打印for(int i =1; i <= n; i++){printf("%d", p->date);
            p = p->next;}printf("%d", p->date);//这个容易漏掉scanf("%d%d",&m,&n);
    }return0;}

模块化代码

1.创建单链表

在这里插入图片描述

2.定位到要插入的位置

在这里插入图片描述

           ❤️关注我一起成长❤️ 
标签: c语言 开发语言

本文转载自: https://blog.csdn.net/qq_64428099/article/details/123887039
版权归原作者 每天都要坚持刷题 所有, 如有侵权,请联系我们删除。

“每日一题之带头单链表的插入”的评论:

还没有评论