C语言线性表的链式存储(框架)
线性表的链式存储
线性表的顺序存储:用一块连续的内存空间
线性表的链式存储:不连续的内存空间
链表是由一系列的节点组成,每个节点包含两个域,一个是数据域,一个是指针域
链表的插入和删除原理
单项链表框架的搭建
头文件
具体的代码如下所示
#ifndef LINKLIST_H
#define LINKLIST_H
#include <stdio.h>
#include <stdlib.h>
// 链表节点
typedef struct LINKNODE {// 使用无类型的指针:该指针可以指向任何类型的数据void * data;struct LINKNODE* next;}LinkNode;// 链表结构体
typedef struct LINKLIST {LinkNode* head;int size;// 根据需要申请内存,没有容量的概念}LinkList;// 打印回调函数指针
typedef void(*PRINTLINKNODE)(void*);// 初始化链表
LinkList* Init_LinkList();
// 在指定的位置插入
void Insert_LinkList(LinkList* list, int pos, void* data);
// 删除指定位置的值
void RemoveByPos_LinkList(LinkList* list, int pos);
// 获得链表的长度
void Size_LinkList(LinkList* list);
//查找链表
int Find_LinkList(LinkList* list,void * data);
// 打印链表节点
void Print_LinkList(LinkList* list, PRINTLINKNODE print);// 返回第一个节点
void* Front_LinkList(LinkList* list);
// 释放链表内存
void FreeSpace_LinkList(LinkList* list);#endif
c语言文件

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include "LinkList.h"// 初始化链表
LinkList* Init_LinkList() {return NULL;
};
// 在指定的位置插入
void Insert_LinkList(LinkList* list, int pos, void* data) {};
// 删除指定位置的值
void RemoveByPos_LinkList(LinkList* list, int pos) {};
// 获得链表的长度
void Size_LinkList(LinkList* list) {//return 0;
};
//查找链表
int Find_LinkList(LinkList* list, void* data) {return 0;
};
// 打印链表节点
void Print_LinkList(LinkList* list, PRINTLINKNODE print) {};// 返回第一个节点
void* Front_LinkList(LinkList* list) {return 0;
};
// 释放链表内存
void FreeSpace_LinkList(LinkList* list) {};int main()
{printf("\n");system("pause");return 0;
}
数据结构中的基本概念
1:算法是为了解决问题二设计的
2:数据结构是算法需要处理问题的载体
3:数据结构与算法相辅相成
算法的表示方法
《只关注最高次项》
《如果最高次项的乘数不是1,就舍去》
《如果是常数》O(1)
malloc()容量,表示的是容器的概念
1:插入新元素,空间不足申请更大的内存空间
2:旧的空间的数据拷贝到新的空间
3:释放旧空间的内存
4:新元素插入到新的空间
链表的基本概念
1:线性表的顺序存储:用一块连续的内存空间
2:线性表的链式存储:不连续的内存空间
3:链表是由一系列的节点组成,每个节点包含两个域,一个是数据域,一个是指针域
相关文章:
C语言线性表的链式存储(框架)
线性表的链式存储 线性表的顺序存储:用一块连续的内存空间 线性表的链式存储:不连续的内存空间 链表是由一系列的节点组成,每个节点包含两个域,一个是数据域,一个是指针域 链表的插入和删除原理 单项链表框架的搭建 …...
webpack配置完热更新之后还是会刷新整个页面
可以在webpack文档中找到有关热更新的详细信息,意思就是,开启热更新之后,整个页面你改了哪里,就只更新哪里,其他没变的,或者保存在缓存里面的内容,都不会改变,感谢很神奇!…...
2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘
传智杯赛后复盘 大家好 我是寸铁👊 2023年第六届传智杯程序设计挑战赛(个人赛)B组 赛后复盘 喜欢的小伙伴可以点点关注 💝 1. 字符串拼接 细节:一定要清楚nextLine()和next()的区别 nextLine()是遇到回车会停下来 nex…...
C语言——深入理解指针(2)
目录 1. 数组名 2. 指针访问数组 3. 一维数组的传参(本质) 4. 冒泡排序 5. 二级指针 6. 指针数组(指针的数组) 7. 指针数组模拟二维数组 1. 数组名 在之前的代码中我们使用指针访问过数组的内容。 int arr[10] {1,2,3,4…...
【已解决】HBase 2.2.6 集群部署后,从节点未启动 HRegionServer
问题发现 今天搭建了 HBase 2.2.6 集群环境,启动之后发现,从节点的 HRegionServer 未启动。多次对比参数设置仍然未发现异常。而启动之前的 HBase 2.4.11 则完成正常,我就有点怀疑是不是 HBase 2.2.6 集群搭建有什么特殊的地方? …...
JVM——垃圾回收(方法区中的垃圾回收和(堆回收)自动垃圾回收)
目录 1.自动垃圾回收介绍1.C/C的内存管理2.Java的内存管理3.垃圾回收的对比 2.方法区的回收方法区的回收 – 手动触发回收 3.堆回收1.引用计数法2.可达性分析算法 1.自动垃圾回收介绍 1.C/C的内存管理 ⚫ 在C/C这类没有自动垃圾回收机制的语言中,一个对象如果不再…...
Flink 常用物理分区算子(Physical Partitioning)
Flink 物理分区算子(Physical Partitioning) 在Flink中,常见的物理分区策略有:随机分配(Random)、轮询分配(Round-Robin)、重缩放(Rescale)和广播(Broadcast)。 接下来,我们通过源码和Demo分别了解每种物理分区算子的作用和区别。 (1) 随机…...
Leetcode.560 和为 K 的子数组
题目链接 Leetcode.560 和为 K 的子数组 mid 题目描述 给你一个整数数组 n u m s nums nums 和一个整数 k k k ,请你统计并返回 该数组中和为 k k k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1]…...
linklab phase1 更简单的方法
直接反汇编phase1.o,看eax中是0x21,0x21在数据域中,直接把从第21个字节的内容改为0000000000即可。...
8.前端--CSS-文本属性【2023.11.26】
CSS Text(文本)属性可定义文本的外观,比如文本的颜色、对齐文本、修饰文本、文本缩进、行间距等 1.文本颜色 color 属性用于定义文本的颜色。 语法: div { color: red; }属性: 2.文本对齐 text-align 属性用于设置元…...
容器技术——Cgroup
目录 容器技术容器技术概述要区分好共享与隔离的概念容器技术的三大核心容器对比虚拟机 namespaceUnionFs容器操作系统的来源操作系统的来源完整操作系统的镜像docker image是什么?如何构成的 如何为容器安装操作系统UnionFS(联合文件系统)的…...
uniapp+vue3路由跳转传参
在uni-app中使用Vue 3进行路由跳转传参,可以通过以下步骤实现: 1.在router文件夹中创建一个名为index.js的文件,用于配置路由。在这个文件中,我们将导入createRouter和createWebHistory函数,并定义路由规则。同时&…...
流量主如何在广告收益和用户体验中找到平衡
流量主在广告收益和用户体验之间找到平衡是一个关键的挑战,因为过多或不恰当的广告可能会影响到用户的满意度和留存率。以下是一些方法,可以帮助流量主在这两者之间找到平衡: admaoyan猫眼聚合 优质内容为先: 提供高质量、有价值的…...
RPC和HTTP的区别
目录 1、RPC是什么 1.1 概念 1.2 RPC的组成部分 1.3 常见的 RPC 技术和框架 1.4 RPC的工作流程 2、HTTP是什么 2.1 概念 2.2 HTTP的消息格式 2.3 HTTP响应状态码有哪些 3、⭐RPC和HTTP的区别 小结 1、RPC是什么 1.1 概念 RPC(Remote Procedure Call&am…...
Dubbo3使用Zookeeper作为注册中心的方案讨论!详解DubboAdmin与PrettyZoo来监控服务的优劣!
文章目录 一:Dubbo注册中心的基本使用 二:Zookeeper注册中心的使用 1:依赖引入 2:实际开发 三:Zookeeper作为注册中心的使用展示 1:启动注册Zookeeper服务 2:引入注册中心 (一)…...
前端uni微信小程序和后端nodejs使用websoket
需求 前端向后台服务器发请求获取验证码,然后端游输入验证码,向我的后端发请求获取验证信息。后台给游戏端返回信息的时候同时给微信小程序端返回验证结果。意思是不要微信小程序端主动触发,验证是否绑定的请求。 思路 后端生成验证码时存…...
java小游戏之【王者荣耀】
首先创建一个新的Java项目命名为“王者荣耀”,并在src下创建两个包分别命名为“com.sxt"、”com.stx.beast",在相应的包中创建所需的类。 代码 package com.sxt;import javax.swing.*; import java.awt.*;public class Background extends GameObject {p…...
QT网络协议知识体系(一)
//获取主机的名称和ip地址 //获取主机的所有信息...
【数据库】表的连接在执行时的算法解析,嵌套循环连接算法的几种实现,多表连接中表的数量会影响什么
嵌套循环连接 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新…...
【刷新:重新发现商业与未来】书笔记
收获 同理心:站在他人角度考虑他人感受,他人需要什么,我能提供什么;他人可以是员工,家人等;对于员工来讲核心四件事:1、薪水;2、有结果;3、有成长;4、工作开…...
快速上手:使用VSCode远程连接部署LFM2.5-1.2B-Thinking-GGUF的服务器
快速上手:使用VSCode远程连接部署LFM2.5-1.2B-Thinking-GGUF的服务器 1. 前言:为什么选择VSCode远程开发 如果你正在使用云服务器或远程主机运行LFM2.5-1.2B-Thinking-GGUF这类大模型,直接在本地和远程之间来回切换会非常麻烦。VSCode的Rem…...
SenseVoice Small实战应用:视频内容打标,自动生成文字摘要和情感倾向
SenseVoice Small实战应用:视频内容打标,自动生成文字摘要和情感倾向 1. 引言:当视频内容遇上“读心术” 想象一下,你手头有几百小时的视频素材,可能是会议录像、课程录播、用户访谈,或是社交媒体上的海量…...
从单点通信到批量处理:s7netplus如何优化西门子PLC数据传输性能
从单点通信到批量处理:s7netplus如何优化西门子PLC数据传输性能 【免费下载链接】s7netplus S7.NET -- A .NET library to connect to Siemens Step7 devices 项目地址: https://gitcode.com/gh_mirrors/s7/s7netplus 在工业自动化系统中,PLC&…...
Audio Pixel Studio效果展示:1000字长文TTS生成耗时与内存占用实测
Audio Pixel Studio效果展示:1000字长文TTS生成耗时与内存占用实测 1. 语音合成效果实测 Audio Pixel Studio集成了Microsoft Edge TTS引擎,支持多国语言和多种高保真音色。本次测试将重点展示其在长文本合成时的性能表现。 1.1 测试环境配置 测试使…...
Python 协程任务池性能优化方案
Python协程任务池性能优化方案 在现代高并发编程中,Python的协程(Coroutine)凭借轻量级线程和高效IO操作成为提升性能的重要工具。当任务数量激增时,简单的协程调度可能导致资源竞争或性能瓶颈。如何优化协程任务池,使…...
解放双手:3分钟快速上手智慧树自动化学习工具的完整指南
解放双手:3分钟快速上手智慧树自动化学习工具的完整指南 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 你是否厌倦了每天手动点击智慧树视频的重复…...
Cogito-v1-preview-llama-3B效果展示:中文合同关键条款抽取准确率
Cogito-v1-preview-llama-3B效果展示:中文合同关键条款抽取准确率 1. 引言:当AI遇上合同审查 想象一下这个场景:法务同事或律师朋友,正面对一份几十页甚至上百页的合同,需要快速找出其中的关键条款——付款方式、违约…...
别再纠结选哪个了!基于模态混叠、端点效应、重构误差和速度,给你的信号分解方法选型指南
信号分解方法选型实战指南:从模态混叠到运行效率的全面权衡 在工程实践中,我们常常需要处理各种非平稳信号——从机械振动监测到心电图分析,从金融时间序列预测到语音信号处理。面对这些复杂信号,传统的傅里叶变换等线性方法往往力…...
新手必看:Ollama+translategemma-27b-it快速入门,本地离线翻译不求人
新手必看:Ollamatranslategemma-27b-it快速入门,本地离线翻译不求人 1. 为什么选择translategemma-27b-it? 1.1 本地离线翻译的独特优势 在当今全球化的工作环境中,我们经常需要处理多语言内容。传统翻译工具存在几个痛点&…...
构建情绪驱动的聊天机器人:集成 Pixel Mind Decoder 与 ChatGPT
构建情绪驱动的聊天机器人:集成 Pixel Mind Decoder 与 ChatGPT 1. 为什么需要情绪感知的聊天机器人 在电商客服、心理咨询、教育辅导等场景中,传统聊天机器人最大的短板就是缺乏情绪理解能力。想象一下,当用户愤怒地投诉商品质量问题时&am…...
