当前位置: 首页 > article >正文

动态创建链表(头插法、尾插法)

今天我们来学习动态创建链表!!!

动态创建链表:分为头插法和尾插法

头插法(动态创建):

头插法就是让新节点变成头

代码如下

                           

        吐血了:这边有个非常重要的知识点,这边第三个if这里一定要将new->next初始化为NULL,因为这个if的条件就是当这个head为NULL,new做头的时候,所以此时传过来的new就是做头的,就只有它这一个,没有下一个,所以如果不初始化new里面的next的话,那么就会发生未定义的行为,就是个野指针,那么在遍历的时候,由于new->next没有初始化就会发生未定义的行为,就会发生死循环且是看不懂的循环比如:

非常的可怕!差点给我吓晕了

      但是在Linux的虚拟机上面运行又不会出现这样的情况,因为windows和Linux的一些库和处理方式的不同吧,但是还是要加上new->next = NULL,这样才符合逻辑。

头插法代码

#include <stdio.h>
#include <stdlib.h>
struct Test
{
    int data;
    struct Test *next;
};

struct Test *insertDataBeforeHead(struct Test *head)
{
    struct Test *new = NULL;
    while(1){
        new = (struct Test *)malloc(sizeof(struct Test));
        if (new == NULL)
        {
            printf("内存分配失败\n");
            return head;
        }
        printf("请输入data\n");
        scanf("%d",&(new->data));
        if(new->data == 0){
            printf("0 quit\n");
            return head;
        }
        if(head == NULL){
            head = new;
            new->next = NULL;//太关键了这个
        }else{
            new->next = head;
            head = new;
        }
    }
    return head;
}

void printfInfo(struct Test *head)
{
    struct Test *point;
    point = head;
    while(point !=NULL){
        printf("%d ",point->data);
        point =point->next;
    }
    putchar('\n');

int main()
{
     struct Test *head = NULL;
     head = insertDataBeforeHead(head);
     printfInfo(head);

     return 0;
}

demo如上各位友友们,尽情享受......

明天学习头插法的优化补充!

相关文章:

动态创建链表(头插法、尾插法)

今天我们来学习动态创建链表&#xff01;&#xff01;&#xff01; 动态创建链表&#xff1a;分为头插法和尾插法 头插法&#xff08;动态创建&#xff09;&#xff1a; 头插法就是让新节点变成头 代码如下 吐血了&#xff1a;这边有个非常重要的知识点&#xff0c;这边第三…...

利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组|文献速递-深度学习医疗AI最新文献

Title 题目 Imaging the structural connectome with hybrid MRI-microscopy tractography 利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组 01 文献速递介绍 通过多种模态绘制大脑结构能够增进我们对大脑功能、发育、衰老以及疾病的理解&#xff08;汉森等人&am…...

安全监控之Linux核心资产SSH连接监测邮件

文章目录 一、引言二、邮箱设置三、脚本配置四、登录测试 一、引言 在某些特殊时期&#xff08;如HVV&#xff09;需要重点监控Linux核心资产SSH连接登录活动情况&#xff0c;实现ssh登录报警监控。其实实现方式并不难。 二、邮箱设置 在邮箱中需要启用“SMTP”协议&#xf…...

文旅田园康养小镇规划设计方案PPT(85页)

1. 项目背景与定位 背景&#xff1a;位于长三角经济圈&#xff0c;依托安吉丰富的自然与文化资源&#xff0c;旨在打造集康养、度假、文化体验于一体的综合小镇。 定位&#xff1a;成为浙北地区知名的康养旅游目的地&#xff0c;融合“一溪两岸”规划理念&#xff0c;实现全面…...

部署Superset BI(四)连接sql server数据库

sqlserver没有出现在Superset的连接可选菜单上&#xff0c;这一点让我奇怪。既然没有那就按着HANA的配置方式&#xff0c;照猫画虎。更奇怪的是安装好还不能出现&#xff0c;难道superset和微软有仇&#xff1f; --修改配置文件 rootNocobase:/usr/superset/superset# cd docke…...

【Linux操作系统】第一弹——Linux基础篇

文章目录 &#x1f4a1; 一. Linux的基本常识&#x1fa94; 1.1 linux网络连接三种方式&#x1fa94;1.2 虚拟机的克隆&#x1fa94;1.3 虚拟机的快照&#x1fa94;1.4 虚拟机的迁移和删除&#x1fa94;1.5 vmtools工具 &#x1f4a1;二. Linux的目录结构&#x1fa94;2.1 Linu…...

开源数字人框架 AWESOME - DIGITAL - HUMAN:技术革新与行业标杆价值剖析

一、项目核心价值:解锁数字人技术新境界 1. 技术普及:降低准入门槛,推动行业民主化 AWESOME - DIGITAL - HUMAN 项目犹如一场技术春雨,为数字人领域带来了普惠甘霖。它集成了 ASR、LLM、TTS 等关键能力,并提供模块化扩展接口,将原本复杂高深的数字人开发流程,转化为一…...

Mysql--基础知识点--91.1--慢查询日志

MySQL 慢查询日志是优化数据库性能的核心工具之一&#xff0c;用于记录执行时间超过指定阈值的 SQL 语句。以下是详细使用指南&#xff1a; 一、配置慢查询日志 1. 临时启用&#xff08;重启后失效&#xff09; -- 启用慢查询日志&#xff08;立即生效&#xff09; SET GLOBA…...

react-12父子组件间的数据传递(子传父)(父传子)- props实现

1.子组件调用父组件的函数并传递数据&#xff08;子传父&#xff09; 1.1父组件 import React, { Component } from react; import ChildComponent from ./ChildComponent;class ParentComponent extends Component {constructor(props) {super(props);this.state {items: […...

vue3: pdf.js 2.16.105 using typescript

npm create vite vuepdfpreview //创建项目npm install vue-pdf-embed npm install vue3-pdfjs npm install pdfjs-dist2.16.105 <!--* |~~~~~~~|* | |* | |…...

从 MDM 到 Data Fabric:下一代数据架构如何释放 AI 潜能

从 MDM 到 Data Fabric&#xff1a;下一代数据架构如何释放 AI 潜能 —— 传统治理与新兴架构的范式变革与协同进化 引言&#xff1a;AI 规模化落地的数据困境 在人工智能技术快速发展的今天&#xff0c;企业对 AI 的期望已从 “单点实验” 转向 “规模化落地”。然而&#…...

【软件测试】测试用例的设计方法

目录 一、基于需求进行测试用例的设计 1.1 功能需求测试分析 二、黑盒测试用例设计方法 2.1 等价类划分法(解决穷举) 2.1.1 等价类设计步骤 2.1.2 等价类划分法案例 2.1.2.1 验证 QQ 账号的合法性 2.1.2.2 验证某城市电话号码的正确性 2.1.3 适用场景 2.2 边界值分析…...

Vim 命令从头学习记录

学习链接&#xff1a;eleon-vim基础教程 Vim - 基础翻屏操作 光标移动&#xff1a;hjkl 20j 向下移动20行&#xff0c;w 向后移动一个字符&#xff0c;b 向前移动一个字符。 Ctrl u 向上翻半页 UP Ctrl d 向下翻半页 Down Ctrl f 向下翻整页 Forward Ctrl b 向上翻整页 …...

初等数论--欧拉函数及其性质

1. 定义 ϕ ( n ) \phi(n) ϕ(n)在数论中代表欧拉函数&#xff0c; 它的值为小于等于 n n n且与 n n n互质的正整数的个数。 2. 性质 若 p p p为质数&#xff0c;则 ϕ ( p ) p − 1 \phi(p) p-1 ϕ(p)p−1; 除了自身以外全都互质。 若 p p p为质数&#xff0c;则 ϕ ( p…...

Java、javax 和 Jakarta有什么区别?

在 Java 开发中,我们经常会看到 java、javax 和 jakarta 这些包名前缀。本文将详细介绍这三个命名空间的含义、发展历程以及它们之间的关系,帮助你更好地理解 Java 生态系统。 一、Java:核心 API 的基础 ✅ 含义: java 是 Java 标准库的核心包名。所有以 java. 开头的类构…...

Java中的控制流语句:if、switch、for、foreach、while、do-while

Java中的控制流语句 Java中的控制流语句用于控制程序执行的流程。这些语句包括条件判断语句和循环语句。本文将详细介绍Java中的 if、switch、for、foreach、while、do-while控制流语句。 一、条件判断语句 1. if语句 if语句根据表达式的真假来决定是否执行代码块。 int x…...

GStreamer开发笔记(三):测试gstreamer/v4l2+sdl2/v4l2+QtOpengl打摄像头延迟和内存

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/147714800 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、O…...

科技成果鉴定测试有哪些内容?又有什么作用?

科技成果鉴定测试是评价科技成果质量和水平的方法之一&#xff0c;通过测试&#xff0c;可以对科技成果的技术优劣进行评估&#xff0c;从而为科技创新提供参考和指导。 一、科技成果鉴定测试的内容   1.技术评审&#xff1a;通过技术专家对项目进行详细的技术分析&#xff…...

基于Spring Boot + Vue 项目中引入deepseek方法

准备工作 在开始调用 DeepSeek API 之前&#xff0c;你需要完成以下准备工作&#xff1a; 1.访问 DeepSeek 官网&#xff0c;注册一个账号。 2.获取 API 密钥&#xff1a;登录 DeepSeek 平台&#xff0c;进入 API 管理 页面。创建一个新的 API 密钥&#xff08;API Key&#x…...

A2A与MCP定义下,User,Agent,api(tool)间的交互流程图

官方图&#xff1a; 流程图&#xff1a; #mermaid-svg-2smjE8VYydjtLH0p {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2smjE8VYydjtLH0p .error-icon{fill:#552222;}#mermaid-svg-2smjE8VYydjtLH0p .error-tex…...

蓝桥杯2025年第十六届省赛真题-水质检测

C语言代码&#xff1a; #include <stdio.h> #include <string.h>#define MAX_LEN 1000000int main() {char a[MAX_LEN 1], b[MAX_LEN 1];// 使用 scanf 读取字符数组scanf("%s", a);scanf("%s", b);int ans 0;int pre -1;int state -1;i…...

机器学习第二讲:对比传统编程:解决复杂规则场景

机器学习第二讲&#xff1a;对比传统编程&#xff1a;解决复杂规则场景 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指南 一、场景…...

[Windows] 东芝存储诊断工具1.30.8920(20170601)

[Windows] 东芝存储诊断工具 链接&#xff1a;https://pan.xunlei.com/s/VOPpMjGdWZOLceIjxLNiIsIEA1?pwduute# 适用型号 东芝消费类存储产品&#xff1a; 外置硬盘&#xff1a;Canvio 系列 内置硬盘&#xff1a;HDW****&#xff08;E300 / N300 / P300 / S300 / V300 / X30…...

[蓝桥杯 2025 省 B] 水质检测(暴力 )

暴力暴力 菜鸟第一次写题解&#xff0c;多多包涵&#xff01;&#xff01;! 这个题目的数据量很小&#xff0c;所以没必要去使用bfs&#xff0c;直接分情况讨论即可 一共两排数据&#xff0c;我们使用贪心的思想&#xff0c;只需要实现从左往右的过程中每个检测器相互连接即…...

Linux网络编程day7 线程池and UDP

线程池 typedef struct{void*(*function)(void*); //函数指针&#xff0c;回调函数void*arg; //上面函数的参数 }threadpool_task_t; //各子线程任务的结构体/*描述线程池相关信息*/struct threadpool_t{pthread_mutex_t lock; …...

wsl - install RabbiqMQ

下载erlang $ sudo apt -y install erlang 安装软件包 $ sudo apt -y install rabbitmq-server 修改配置文件 $ sudo vi /etc/rabbitmq/rabbitmq-env.conf # Defaults to rabbit. This can be useful if you want to run more than one node # per machine - RABBITMQ_NODENAME…...

ABB电机保护单元通过Profibus DP主站转Modbus TCP网关实现上位机通讯

ABB电机保护单元通过Profibus DP主站转Modbus TCP网关实现上位机通讯 在工业自动化领域&#xff0c;设备之间的通信至关重要。Profibus DP是一种广泛应用的现场总线标准&#xff0c;而Modbus TCP则是一种基于以太网的常见通信协议。将Profibus DP主站转换为Modbus TCP网关&…...

深入解析二维矩阵搜索:LeetCode 74与240题的两种高效解法对比

文章目录 **引言** **一、问题背景与排序规则对比****1. LeetCode 74. 搜索二维矩阵****2. LeetCode 240. 搜索二维矩阵 II** **二、核心解法对比****方法1&#xff1a;二分查找法&#xff08;适用于LeetCode 74&#xff09;****方法2&#xff1a;线性缩小搜索范围法&#xff0…...

迪士尼机器人BD-X 概况

这些机器人代表着迪士尼故事叙述与非凡创新的完美结合。它们不仅栩栩如生&#xff0c;还配备了先进的技术。 -迪士尼幻想工程研发部高级副总裁凯尔劳克林 幕景 BDX 机器人是由华特迪士尼公司的研究和幻想工程部门利用NVIDIA人工智能技术 (AI)开发的现实世界机器人&#xff0c;…...

UE5骨骼插槽蓝图

首先在人物骨骼处添加插槽并命名&#xff0c;然后再选择添加预览资产把你要的模型&#xff08;静态网格体&#xff09;放上去。 选择绑定的骨骼再去右边相对位置、旋转等调整物体。 再去人物蓝图里面写就ok了...