C语言链表

1.链表

什么是链表

链表是一种数据结构,是一种数据存放的思想

数组特点:元素地址连续

数组的缺点:增加、删除、改、查比较困难,特别是增加的时候,不够灵活

 链表的每一项都是一个结构体 

#include<stdio.h>
struct Test
{
    int data;
    struct  Test *next;
};
int main()
{
    int i;

    int arr[] = {1,2,3,4};
    for(i<0; i<sizeof(arr)/sizeof(arr[0]); i++){
        printf("%d  ",arr[i]);
    }
    putchar('\n');
    struct  Test t1 = {1,NULL};
    struct Test t2 = {2,NULL};
    struct Test t3 = {3,NULL};
    t1.next = &t2;
    t2.next = &t3;
printf("use t1 to print three nums\n");
printf("%d %d %d",t1.data,t1.next->data,t1.next->next->data);

    return 0;
}

2.链表的静态添加和遍历

 静态添加:

    struct  Test t1 = {1,NULL};
    struct Test t2 = {2,NULL};
    struct Test t3 = {3,NULL};
    struct Test t4 = {4,NULL};//静态添加只需要再定义一个结构体
    t1.next = &t2;
    t2.next = &t3;
    t3.next = &t4;//链表尾的next为下一个结构体的地址

 遍历:

void printLink(struct Test *head)
{
  struct Test *point;//定义一个节点来存储头结点
  point = head;
  while(1){
    if(point != NULL)//如果point == NULL说明已经到了链表的尾部
    { 
        printf("%d ",point->data);
        point = point ->next;//每打印一次,
    }
}
}

3.统计链表节点个数以及链表查找

3.1链表节点个数

int getLinkTotalNodeNum(struct Test *head)
{
    int cnt = 0;
    while(head != NULL){
        cnt++;
        head = head ->next;
    }
    return cnt;
}

 3.2链表查找

int searchLink(struct Test *head,int a)
{
    
    while(head != NULL){
        if(a == head->data){
            return 1;
        }
        head = head ->next;
    }
    return 0;
}

 4.链表的插入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/157740.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智慧工地解决方案,实现安全预警、机械智能监控、作业指导、绿色施工、劳务管理、工程进度监控、施工质量检查

智慧工地云平台全套源码 智慧工地平台采用先进的云计算、物联网和大数据技术&#xff0c;可以实现智慧工地方案的落地。能够实现实时掌控工地活动及各项进度&#xff0c;有效预防违章施工。能够为工地提供多项服务&#xff0c;如安全预警、机械智能监控、作业指导、绿色施工、劳…

Java项目实战《苍穹外卖》 一、项目概述

人道洛阳花似锦&#xff0c;偏我来时不逢春。 系列文章目录 苍穹外卖是黑马程序员2023年的Java实战项目&#xff0c;作为业余练手用&#xff0c;需要源码或者课程的可以找我&#xff0c;无偿分享 Java项目实战《苍穹外卖》 一、项目概述Java项目实战《苍穹外卖》 二、项目搭建 …

NewStarCTF2023 Reverse Week3---Let‘s Go Wp

分析 程序打开后结合题目可以发现是 GO语言。 在GO语言中&#xff0c;main_init 要先于 main 函数运行。 在这里对一个iv做了处理。 用插件Signsrch发现AES加密 知道是AES后&#xff0c;就需要找密文&#xff0c;key和iv了。 密文应该就是前面的十六进制字符串。 key和i…

springboot使用MongoTemplate根据正则表达式查询日期数据

一、日期正则表达式测试 匹配HH:mm:ss正则表达式写法有很多列举两个 .(点)代表任意匹配 ^必须以xxx开头, 如^[a-z],必须以a-z的字母开头 : 精确匹配,必须是: ([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9]) ^([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])$ ([0-1]?…

UniPro提高集成能力 让客户专注于交付价值

一千个哈姆莱特就有一千个读者&#xff0c;一千个开发团队&#xff0c;也会有各不相同的软件工具和工作流程。工具与工具之间&#xff0c;功能上的割裂亦或重叠&#xff0c;都会给企业和团队的协作带来阻塞&#xff0c;结果就会导致团队之间各自为战、信息孤岛的形成以及资源的…

2023数维杯国际赛数学建模竞赛选题建议及B题思路讲解

大家好呀&#xff0c;2023年第九届数维杯国际大学生数学建模挑战赛今天早上开赛啦&#xff0c;在这里先带来初步的选题建议及思路。 目前团队正在写B题和D题完整论文&#xff0c;后续还会持续更新哈&#xff0c;大家三连关注一下防止迷路。 注意&#xff0c;本文只是比较简略…

操作系统课程设计

操作系统课程设计 介绍 1. 系统介绍 具有进程管理&#xff0c;磁盘文件管理的操作系统&#xff0c;用于熟悉操作系统中CPU运行的三种状态&#xff0c;运行、就绪、阻塞。对于文件磁盘管理系统&#xff0c;具有相应的文件读取、写入、删除操作。 2. 运行系统的基础环境 运行…

贪吃蛇小游戏

一. 准备工作 首先获取贪吃蛇小游戏所需要的头部、身体、食物以及贪吃蛇标题等图片。、 然后&#xff0c;创建贪吃蛇游戏的Java项目命名为snake_game&#xff0c;并在这个项目里创建一个文件夹命名为images&#xff0c;将图片素材导入文件夹。 再在src文件下创建两个包&#…

TikTok明星的社会责任:用影响力传递正能量

随着社交媒体的崛起&#xff0c;TikTok等短视频平台上的明星和网红们逐渐成为社会焦点。这些具有巨大粉丝基础的个体拥有强大的影响力&#xff0c;因此应当肩负起更多的社会责任。本文将深入探讨TikTok明星的社会责任&#xff0c;以及如何利用他们的影响力传递正能量&#xff0…

wu-ui-uniapp 多平台快速开发的UI框架

WU-UI 多平台快速开发的UI框架(无论平台&#xff0c;一致体验) 官方群 wu-ui官方1群: 767943089 说明 wu-ui(如虎添翼) 是 全面兼容多端的uniapp生态框架&#xff0c;基于vue2、vue3和nvue开发。丰富组件库&#xff0c;便捷工具库&#xff0c;简单高效。无论平台&#x…

一键转换bmp到jpg,轻松优化你的图片管理

在数字世界中&#xff0c;图片是我们日常工作和生活中的重要组成部分。然而&#xff0c;不同的文件格式可能会给我们的图片管理带来诸多不便。这时&#xff0c;我们就需要一个简单而强大的工具来帮助我们轻松转换图片格式。今天&#xff0c;我们为大家带来了一款全新的bmp到jpg…

实践小记——C#科学计数法格式化输出

文章速览 示例默认输出&#xff0c;不设置小数精度设置尾数部分的小数精度 总结参考文章 坚持记录实属不易&#xff0c;希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区&#xff01; 谢谢~ 示例 默认输出&#xff0c;不设置小数精度 private void Fo…

Python算法题2023 输出123456789到98765432中完全不包含2023的数有多少

题目&#xff1a; 无输入&#xff0c;只需输出结果&#x1f910; 这个数字比较大&#xff0c;小伙伴们运行的时候要给代码一点耐心嗷つ﹏⊂ &#xff0c;下面是思路&#xff0c;代码注释也很详细&#xff0c;大致看一下吧&#xff08;&#xff3e;∀&#xff3e;●&#xff09…

VS2017 IDE 编译时的 X86、x64位 是干什么的

指定编译出的程序是x86架构下的32位程序还是64位程序 VS2017项目配置X86改配置x64位_winform:把项目由x86改为x64-CSDN博客 vs平台选项&#xff1a;Any CPU,x86,x64_vs anycpu-CSDN博客

低代码零代码的适用场景与行业应用

在如今高速发展的智能时代&#xff0c;随着软件开发需求的不断增长&#xff0c;低代码/零代码平台逐渐进入人们的视野&#xff0c;并在行业内兴起。那样&#xff0c;此方法可以用什么场景呢&#xff1f;本文将对不同应用领域的低代码/零代码平台进行深入分析&#xff0c;为读者…

带后台的IM即时通讯App 全程MVP手把手打造

手把手开发一个完整即时通讯App 客户端服务端MVP架构 课程详情 本课程将全程手把手&#xff0c;带你运用MVP架构&#xff0c;封装思想以及当下主流的技术框架开发一款功能全面的聊天APP&#xff08;客户端服务端&#xff09;&#xff0c;让你系统学习IM技术&#xff0c;并拥有一…

DBeaver 23.2.4发布

导读DBeaver 23.2.4发布,修复和添加了一些新功能。 SQL 编辑器 为更新语句添加了代码自动补全功能修复了智能补全和替换带引号表达式的问题删除了日志中首次打开 SQL 编辑器时出现的多余错误 数据库导航器 添加了过滤对象可视化功能修复了脚本文件夹打开问题 数据传输 正确…

行情分析——加密货币市场大盘走势(11.17)

大机构拉高出货&#xff0c;放心大胆干&#xff0c;笔者手上空单一直拿着&#xff0c;继续等待大饼下跌。 空单策略&#xff1a;入场37000附近 止盈34000-32500 止损39000 以太按照预期回调&#xff0c;继续盈利中&#xff0c;等待继续下跌。没有入场的可以入场&#xff0c;重…

鸿蒙APP外包开发上线流程

鸿蒙系统的上线流程可能会根据具体的版本和平台要求而略有不同。在进行上线之前&#xff0c;开发人员应该详细了解并遵循鸿蒙生态系统的相关规定和要求。鸿蒙&#xff08;HarmonyOS&#xff09;应用的上线流程通常包括以下步骤&#xff0c;希望对大家有所帮助。北京木奇移动技术…

【Python】集合与字典

按照输入顺序输出 将输入的名字去重&#xff0c;同时按照输入顺序输出 sinput().split(,) blist(set(s)) bsorted(b,keys.index) print(b) 删除集合元素、更新集合 根据操作删除更新集合 update括号里可以是一个集合&#xff0c;add只能是一个元素 discard用于删除元素&#x…