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

C语言 实现 链 显示 效果 查找 修改 删除

显示所有信息
2023年10月1日的描述:今天放假
2023年10月2日的描述:今天有体育
2023年10月3日的描述:今天有数学
2023年10月4日的描述:今天有语文
2023年10月5日的描述:今天有政治
2023年10月6日的描述:今天交学费
2023年10月7日的描述:今天周末
2023年10月8日的描述:今天给家里打电话
2023年10月9日的描述:今天给同学辅导数学
2023年10月10日的描述:今天上体育


查找 2023,10,4号的信息
2023年10月4日的描述:今天有语文


更改2023年10月4的信息
[更改]请输入2023年10月4日的描述:中华人民共和国
修改后的节点信息是:
2023年10月4日的描述:中华人民共和国


删除2023年10月5号的记录
2023年10月5日的描述:今天有政治
以上节点信息从链上被剔除~!


显示所有信息
2023年10月1日的描述:今天放假
2023年10月2日的描述:今天有体育
2023年10月3日的描述:今天有数学
2023年10月4日的描述:中华人民共和国
2023年10月6日的描述:今天交学费
2023年10月7日的描述:今天周末
2023年10月8日的描述:今天给家里打电话
2023年10月9日的描述:今天给同学辅导数学
2023年10月10日的描述:今天上体育
所有节点释放完毕~!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<string.h>typedef struct Date {int year, month, day;
}Date_t;typedef struct Node {Date_t date;//日期char describe[200];//描述struct Node* next;
}Node_t,*ListLink;void init(ListLink* L) {*L = malloc(sizeof(Node_t));    if (!L) //如果分配失败exit(1);(*L)->next = NULL;
}void push_back(ListLink* L,Node_t node) {static ListLink tail;if ((*L)->next == NULL) {tail = *L;}Node_t* newNode = malloc(sizeof(Node_t));if (!newNode) //如果分配失败exit(1);newNode->date = node.date;strcpy(newNode->describe, node.describe);newNode->next = NULL;tail->next = newNode;tail = newNode;
}Node_t creatNode(int year,int month,int day,char * describe) {    Node_t node;node.date.year = year;node.date.month = month;node.date.day = day;node.next = NULL;strcpy(node.describe, describe);return node;
}int cmp(Date_t a, Date_t b) { //分析两个日期是否一直,一直返回1if (a.year != b.year)return 0;if (a.month != b.month)return 0;if (a.day != b.day)return 0;return 1;
}Node_t* findByDate(ListLink L,Date_t date) {//根据年月日查找节点是否存在ListLink p = L->next;while (p) {if (cmp(p->date, date))//如果找到了对应日期,返回return p;p = p->next;}return p;//没找到返回的必是空
}void showNode(Node_t* node) {//显示一个节点的信息    printf("%d年%d月%d日的描述:", node->date.year, node->date.month, node->date.day);puts(node->describe);
}void edit(Node_t*node) {printf("[更改]请输入%d年%d月%d日的描述:",node->date.year, node->date.month, node->date.day);gets(node->describe);puts("修改后的节点信息是:");showNode(node);
}void delete(ListLink *L,Date_t date) {//找到指定节点的前一个节点ListLink previous = (*L);ListLink current = (*L)->next;while (current) {if (cmp(current->date, date))//如果找到了对应日期,返回break;previous = current;current = current->next;}if (current) {previous->next = current->next;showNode((Node_t*)current);puts("以上节点信息从链上被剔除~!");free(current);}else {puts("删除失败,没有此日期的节点");}     
}void printAll(ListLink L) {    ListLink current = L->next;while (current) {showNode(current);current = current->next;}
}void destruction(ListLink* L) {//销毁整个链Node_t* current;if (*L == NULL)return;current = (*L)->next;while (current) {     (*L)->next = current->next;free(current);current = (*L)->next;      }free(*L);puts("所有节点释放完毕~!");
}int main()
{ListLink L;Node_t* node;Date_t date;init(&L);push_back(&L, creatNode(2023, 10, 1, "今天放假"));push_back(&L, creatNode(2023, 10, 2, "今天有体育"));push_back(&L, creatNode(2023, 10, 3, "今天有数学"));push_back(&L, creatNode(2023, 10, 4, "今天有语文"));push_back(&L, creatNode(2023, 10, 5, "今天有政治"));push_back(&L, creatNode(2023, 10, 6, "今天交学费"));push_back(&L, creatNode(2023, 10, 7, "今天周末"));push_back(&L, creatNode(2023, 10, 8, "今天给家里打电话"));push_back(&L, creatNode(2023, 10, 9, "今天给同学辅导数学"));push_back(&L, creatNode(2023, 10, 10, "今天上体育"));//显示所有信息puts("\n\n显示所有信息");printAll(L);//查找 2023,10,4号的信息puts("\n\n查找 2023,10,4号的信息");date.year = 2023;date.month = 10;date.day = 4;node = findByDate(L,date);showNode(node);//更改10月4的信息puts("\n\n更改2023年10月4的信息");edit(node);//删除2023年10月5号的记录puts("\n\n删除2023年10月5号的记录");date.year = 2023;date.month = 10;date.day = 5;delete(&L,date);//显示所有信息puts("\n\n显示所有信息");printAll(L);destruction(&L);return 0;
}

相关文章:

C语言 实现 链 显示 效果 查找 修改 删除

显示所有信息 2023年10月1日的描述:今天放假 2023年10月2日的描述:今天有体育 2023年10月3日的描述:今天有数学 2023年10月4日的描述:今天有语文 2023年10月5日的描述:今天有政治 2023年10月6日的描述:今天交学费 2023年10月7日的描述:今天周末 2023年10月8日的描述:今天给家里…...

CSS基础语法第一天

目录 一、CSS 简介 1.1 CSS简介 1.2 CSS语法 ​1.3 CSS 语法规范 1.4 CSS 代码风格 1.4.1 样式格式书写 1.4.2 样式大小写 ​1.4.3 空格规范 二、CSS 基础选择器 2.1选择器分类 2.2标签选择器 2.3 类选择器 2.4 id选择器 2.5 通配符选择器 三、盒子尺寸和背景色 …...

Leetcode 1492.n的第k个因子

给你两个正整数 n 和 k 。 如果正整数 i 满足 n % i 0 &#xff0c;那么我们就说正整数 i 是整数 n 的因子。 考虑整数 n 的所有因子&#xff0c;将它们 升序排列 。请你返回第 k 个因子。如果 n 的因子数少于 k &#xff0c;请你返回 -1 。 示例 1&#xff1a; 输入&#…...

十一工具箱流量主小程序源码

无授权&#xff0c;去过滤机制版本 看到网上发布的都是要授权的 朋友叫我把他去授权&#xff0c;能用就行 就把过滤去了 这样就不用授权 可以免费使用 白嫖党专属 一切接口可用&#xff0c;无需担心不能用 授权者不关站一直可以用 源码下载&#xff1a;https://download.csdn.…...

10.5汇编语言整理

【汇编语言相关语法】 1.汇编语言的组成部分 1.伪操作&#xff1a;不参与程序的执行&#xff0c;但是用于告诉编译器程序该怎么编译 .text .global .end .if .else .endif .data 2.汇编指令 编译器将一条汇编指令编译成一条机器码&#xff0c;在内存里一条指令占4字节内存&…...

Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused: connect

报错信息 A problem occurred configuring root project CourseSelection. > Could not resolve all artifacts for configuration :classpath.> Could not resolve com.android.tools.build:gradle:3.6.1.Required by:project :> Could not resolve com.android.tool…...

驱动器类产品的接口EMC拓扑方案

驱动器类产品的接口EMC拓扑方案 1. 概述 本文以高压伺服驱动器和变频器类产品为例&#xff0c;对常用端口滤波拓扑方案进行总结&#xff0c;后续根据不同的应用场景可进行适当删减&#xff0c;希望对大家有帮助。 2. 驱动器验证等级 本文推荐拓扑的实验结果&#xff0c;满足…...

2023最新ICP备案查询系统源码 附教程 Thinkphp框架

2023最新ICP备案查询系统源码 附教程 thinkphp框架 本系统支持网址备案&#xff0c;小程序备案&#xff0c;APP备案查询&#xff0c;快应用备案查询 优势&#xff1a; 响应速度快&#xff0c;没有延迟&#xff0c;没有缓存&#xff0c;数据与官方同步 源码下载&#xff1a;ht…...

大数据Doris(六):编译 Doris遇到的问题

文章目录 编译 Doris遇到的问题 一、js_generator.cc:(.text+0xfc3c): undefined reference to `well_known_types_js’...

vue重修004上部

文章目录 版权声明组件的三大组成部分scoped解决样式冲突scoped原理2.代码演示 组件data函数说明演示 组件通信组件关系分类通信解决方案父子通信流程子向父通信代 props详解props校验props&data、单向数据流 小黑记事本&#xff08;组件版&#xff09;基础组件结构需求和实…...

【C++ techniques】要求/禁止/判断—对象产生于堆中

有时候我们想让某种对象具有“自杀”的能力&#xff0c;所以我们必须要求对象存在堆中&#xff0c;以便我们调用delete this&#xff1b;另一些时候&#xff0c;我们要求拥有某种确定性&#xff0c;保证某一些类型绝不会发生内存泄漏&#xff0c;原因是没有任何一个该类型的对象…...

吃鸡高手亲授:玩转绝地求生,分享顶级游戏干货!

绝地求生&#xff08;PUBG&#xff09;自上线以来&#xff0c;成为了全球热门游戏。作为吃鸡行家&#xff0c;我将分享一些独家技巧和干货&#xff0c;帮助您提高游戏战斗力&#xff0c;享受顶级游戏作战体验&#xff01; 首先&#xff0c;让我们谈一谈战斗力升级。想要在吃鸡游…...

Vue中如何进行自定义图表与可视化图形设计

Vue中如何进行自定义图表与可视化图形设计 在现代Web应用程序开发中&#xff0c;数据可视化图表和图形设计是至关重要的一部分。Vue.js是一个流行的JavaScript框架&#xff0c;它提供了强大的工具来构建交互性强大的用户界面。本文将探讨如何在Vue.js中进行自定义图表和可视化…...

学信息系统项目管理师第4版系列19_质量管理

1. 公差 1.1. 质量测量中公差是测量指标的可允许变动范围&#xff0c;而不是实际测量值与预期值的差 1.1.1. 【高22下选35】 1.2. 结果的的可接受范围 2. 控制界限 2.1. 统计意义上稳定的过程或过程绩效的普通偏差的边界 3. 3版 3.1. 质量控制新七工具 3.1.1. 【高19下…...

react库的基础学习

React介绍 React.js是前端三大新框架&#xff1a;Angular.js、React.js、Vue.js之一&#xff0c;这三大新框架的很多理念是相同的&#xff0c;但是也有各自的特点。 React起源于Facebook的内部项目&#xff0c;因为该公司对市场上所有 JavaScript MVC 框架&#xff0c;都不满…...

FFmpeg 基础模块:容器相关的 API 操作

目录 AVFormat 模块 AVFormat 前处理部分 AVFormat 读写处理部分 小结 思考 FFmpeg 目录中包含了 FFmpeg 库代码目录、构建工程目录、自测子系统目录等&#xff0c;具体内容如下&#xff1a; 现在你知道 FFmpeg 的源代码目录中都包含了哪些内容&#xff0c;在之后使用 FFm…...

SpringMVC+统一表现层返回值+异常处理器

一、统一表现层返回值 根据我们不同的处理方法&#xff0c;返回的数据格式都会不同&#xff0c;例如添加只返回true|false&#xff0c;删除同理&#xff0c;而查询却返回数据。 Result类 为此我们封装一个result类来用于表现层的返回。 public class Result {//描述统一格式…...

2023年地理信息系统与遥感专业就业前景与升学高校排名选择

活动地址&#xff1a;毕业季进击的技术er 地理信息系统&#xff08;GIS&#xff0c;Geographic Information System&#xff09;&#xff0c;又称“地理信息科学”&#xff08;Geographic Information Science&#xff09;&#xff0c;是一种具有信息系统空间专业形式的数据管理…...

第五章:最新版零基础学习 PYTHON 教程—Python 字符串操作指南(第二节 - Python 字符串—Python 字符串 len()的语法)

Python len() 函数返回字符串的长度。 目录 Python len() 语法 Python len() 示例 示例 1:带有元组和字符串的 Len() 函数...

ubuntu22.04使用共享文件设置

从ubuntu20.04开始&#xff0c;设置共享文件就很麻烦 第一步&#xff1a; 安装samba&#xff1a; sudo apt install samba第二步; 创建一个共享文件夹 我以桌面Desktop为例子 第三步&#xff1a; 设置密码&#xff1a; sudo smbpasswd -a ygc第四步&#xff1a; sudo vim …...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...