嵌入式数据结构(单链表)

2023-10-29

嵌入式学习第七天

1、链式存储相较于顺序存储优势:(1)内存连续性要求没那么高。(2)插入或者删除不用大量 移位操作。
2、
在这里插入图片描述
3、在这里插入图片描述
4、在这里插入图片描述

link list_get_wz(link q,int i)
{
	link p;
	p = q;
	int j=0;
	if (p == NULL)
	{
		printf("This is phty\n");
	}
	if (i == 0)
	{
		return p;
	}
	while (p->next != NULL)
	{
		p = p->next;
		j++;
		if (j==i)
		{
			return p;
		}
	}
	return NULL;
}

5、在这里插入图片描述

int list_inseart(link p, int w, int sum)
{
	link q,b;
	q = list_get_wz(p, w - 1);
	if (q == NULL)
	{
		printf("input full\n");
		return -1;
	}
	b = (link)malloc(sizeof(sqlink));
	b->a = sum;
	b->next = q->next;
	q->next = b;
	return 0;
}

6、在这里插入图片描述

int list_delate(link p,int w)
{
	link q,b;
	if (w < 1)
	{
		printf("input errol\n");
		return 0;
	}
	q = list_get_wz(p,w-1);
	if (q == NULL)
	{
		printf("input errol\n");
		return 0;
	}
	b = q->next;
	q->next = q->next->next;
	free(b);
}

8、main.c

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "list.h"

int main() 
{
	link p,q;
	p = list_creat();
	list_insert_jd(p, 10);
	list_insert_jd(p, 20);
	list_insert_jd(p, 240);
	list_insert_jd(p, 40);
	p = list_free(p);
	list_printf(p);
	return 0;
}

list.c

#include "list.h"
#include "stdlib.h"
#include "string.h" 
#include "stdio.h"

link list_creat()
{
	link p;
	p = (link)malloc(sizeof(sqlink));
	p->a = 0;
	p->next = NULL;
	return p;
}

int list_insert_jd(link q,int num)
{
	link p;
	p = (link)malloc(sizeof(sqlink));
	p->next = NULL;
	p->a = num;
	while (q->next != NULL)
	{
		q = q->next;
	}
	q->next = p;
	return 0;
}

void list_printf(link p)
{
	if (p->next == NULL)
	{
		printf("This is phty");
	}
	while (p->next != NULL)
	{
		p = p->next;	
		printf("%d ",p->a);
	}
}



link list_get_num(link p, int num)
{
	link q;
	q = p;
	if (p == NULL)
	{
		printf("This is phty\n");
	}
	while (q->next != NULL)
	{
		q = q->next;
		if (q->a == num)
		{
			return q;
		}
	}
	return NULL;
}

link list_get_wz(link q,int i)
{
	link p;
	p = q;
	int j=0;
	if (p == NULL)
	{
		printf("This is phty\n");
	}
	if (i == 0)
	{
		return p;
	}
	while (p->next != NULL)
	{
		p = p->next;
		j++;
		if (j==i)
		{
			return p;
		}
	}
	return NULL;
}

int list_inseart(link p, int w, int sum)
{
	link q,b;
	q = list_get_wz(p, w - 1);
	if (q == NULL)
	{
		printf("input full\n");
		return -1;
	}
	b = (link)malloc(sizeof(sqlink));
	b->a = sum;
	b->next = q->next;
	q->next = b;
	return 0;
}

int list_delate(link p,int w)
{
	link q,b;
	if (w < 1)
	{
		printf("input errol\n");
		return 0;
	}
	q = list_get_wz(p,w-1);
	if (q == NULL)
	{
		printf("input errol\n");
		return 0;
	}
	b = q->next;
	q->next = q->next->next;
	free(b);
	b = NULL;
}

link list_free(link p)
{
	link q;
	q = p;
	int j = 0;
	if (p == NULL)
	{
		printf("list is phty");
		return 0;
	}
	while (p != NULL)
	{
		q = p;
		p=p->next;
		free(q);
	}
	return NULL;
}

list.h

#ifndef __LIST_H
#define __LIST_H

#include "stdio.h"

typedef struct nod{
	int a; 
	struct nod *next;
} sqlink, * link;

link list_creat();
void free_list(link p);
int list_insert_jd(link q, int num);
void list_printf(link p); 
int list_delate(link p,int w);  //删除链表某一元素
link list_get_num(link p,int num);//查找某一个数据元素
link list_get_wz(link p, int num);
int list_inseart(link p,int w,int sum); //在链表某一个位置插入
link list_free(link p);  //链表释放
#endif

9、链表的释放
在这里插入图片描述
此图后面 H=NULL;没用因为改的是形参,要在定义他的地方改才行。函数改变main函数的指针可以用二级指针,也可用返回值。
10、链表按元素大小顺序合并
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式数据结构(单链表) 的相关文章

  • Linux-安装命令01:apt-get命令详解(超详细)【apt-get是Ubuntu默认的包管理工具】

    简介 apt get 是一条linux命令 适用于deb包管理式的操作系统 例如Ubuntu系统 主要用于自动从互联网的软件仓库中搜索 安装 升级 卸载软件或操作系统 sudo apt get y update sudo apt get y
  • JSP九大作用域

    jsp的九大作用域 request 请求对象 类型 javax servlet ServletRequest 作用域 Request response 响应对象 类型 javax servlet SrvletResponse 作用域 Pag
  • 增长黑盒

    大家好 我是Alan 增长黑盒 增长黑盒 是一家专注研究企业增长的公司 近两年来我们输出了数十篇企业增长策略和案例的深度研究报告 并建立了国内最大的增长黑客社区 今天的这篇文章将结合自己从零搭建了一整套增长工程的案例 谈一谈增长驱动力的研究
  • Java 网络编程(大全)

    前言必读 读者手册 必读 云边的快乐猫的博客 CSDN博客 一 1网络通信的基本模式分为两种 1 CS模式 Client 客户端 Server 服务端 客户端是需要程序员去开发的 例如日常使用的各种的APP 服务端就是服务器 例子 端游 依
  • fedora 8 声音问题解决方案

    症状 1 通过system config soundcard测试 可以正确识别声卡 2 普通用户无法调节音量 无法播放声音文件 解决方法 lax liulantao sudo less etc security console perms
  • unity 3D打飞碟游戏,虚拟现实大作业

    unity 3D打飞碟游戏 下载链接在文末 包含游戏菜单 按钮 分数记载等等 点我下载资源 https download csdn net download weixin 43474701 34839915
  • 信捷总线Xnet-速度模式使用总结

    XDC类型的PLC的串口配置 主要是串口1与串口4 串口1 X Net RS232 32768 2 OMMS 57600 串口4 X Net RS485 32768 2 OMMS 3000000 周期通讯 PLC配置 N为站号 可参考Xne
  • Neo4j 环境配置及问题解决

    问题目录 1 环境配置 Jdk环境配置 Neo4j下载地址 环境变量 2 遇到的问题 jdk版本不匹配 在配置neo4j install service时失败 1 环境配置 Jdk环境配置 jdk配置这里就不说啦 Neo4j下载地址 官网下
  • Rxjs的flatMap使用

    Rxjs的flatMap使用 flatMap是Rxjs比较绕的一个概念 这里我们只是讲解如何使用 在Rxjs 4 0版本时叫flatMap 在Rxjs 5 0时被更名为margeMap 现在flatMap作为margeMap的别名使用 这是
  • 3D车道线单目检测方法ONCE-3DLanes

    3D车道线检测论文 ONCE 3DLanes Building Monocular 3D Lane Detection 上传arXiv于2022年5月 是华为诺亚和复旦大学的工作 由于道路不平 传统的单目图像2D车道线检测在自动驾驶的跟踪规
  • Linux系统Load average负载详细解释

    我们知道判断一个系统的负载可以使用top uptime等命令去查看 它分别记录了一分钟 五分钟 以及十五分钟的系统平均负载 例如我的某台 服务器 root ccidcom uptime 13 14 32 up 79 days 4 00 1
  • 数组——筛选数组

    将数组 2 0 6 1 77 0 52 0 25 7 中大于等于10的元素选出来 放入新数组 实现分析 1 声明一个新的空数组 用来存放 gt 10 的元素 2 for循环遍历数组中的每个元素 判断是否大于等于10 将其存到声明的空数组中
  • python从tushare获取股票历史数据

    使用前提 安装Python 安装pandas lxml也是必须的 正常情况下安装了Anaconda后无须单独安装 如果没有可执行 pip install lxml 建议安装Anaconda 一次安装包括了Python环境和全部依赖包 减少问
  • 指定springboot的jar运行内存

    一般情况下 我们运行一个springboot的jar包 是这样运行的 java jar xxx jar 如果想指定运行的内存 可以这样 java Xms10m Xmx200m jar xxx jar 这个参数是java命令的参数 其他详细的
  • 中断产生EINTR错误

    https blog csdn net u011068702 article details 62069714 1 介绍慢系统调用 该术语适用于那些可能永远阻塞的系统调用 永远阻塞的系统调用是指调用永远无法返回 多数网络支持函数都属于这一类
  • C语言一维数组练习例题及答案

    1 运动场上 一群学生正绕操场跑步 看台上一个小朋友专注地看着 他想找出他们中身高最高的人排在第几位 请编写程序模拟找出最大值的排位 要求先往数组中输入10个元素 再输出数组中最大值的下标 例如 输入 1 2 3 4 5 6 7 8 9 1
  • 基于SpringBoot前后端分离的网吧管理系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SpringBoot 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse

随机推荐

  • Linux之命令查看器

    命令查看器 https wangchujiang com linux command c iptables html
  • html中input禁用缓存 使用标签 关闭 input 缓存

    实现1 在单个input 中 禁用缓存 autocomplete off 默认no
  • base -2 Number——进制转换

    题目描述 Given an integer N find the base 2 representation of N Here S is the base 2 representation of N when the following
  • Activity的6大难点,你会几个?建议收藏

    近日一好友去阿里面试 面试失败了 分享了一个他最不擅长的算法面试题 题目是这样的 题目 给定一个二叉搜索树 BST 找到树中第 K 小的节点 出题人 阿里巴巴出题专家 文景 阿里云 CDN 资深技术专家 参考答案 考察点 基础数据结构的理解
  • C和C++安全编码笔记:整数安全

    5 1 整数安全导论 整数由包括0的自然数 0 1 2 3 和非零自然数的负数 1 2 3 构成 5 2 整数数据类型 整数类型提供了整数数学集合的一个有限子集的模型 一个具有整数类型的对象的值是附着在这个对象上的数学值 一个具有整数类型的
  • 1016:整型数据类型存储空间大小(C C++)

    题目描述 分别定义int short类型的变量各一个 并依次输出它们的存储空间大小 单位 字节 输入 无 输出 一行 两个整数 分别是两个变量的存储空间大小 用一个空格隔开 输入样例 无 输出样例 无 代码 include
  • Qt学习(五)—— QWidget对象模型

    在Qt中 所有窗口及窗口控件都是从QWidget直接或间接派生出来的 对象模型 在Qt中创建对象的时候会提供一个Parent对象指针 下面来解释这个parent到底是干什么的 QObject是以对象树的形式组织起来的 当你创建一个QObje
  • 塔湖智能获数百万元种子轮投资,打造AI出海营销机器人

    据悉 专注于全球出海AI营销机器人服务商 塔湖智能获得由民峰资本领投及个人企业家跟投的数百万种子轮融资 民峰资本投资负责人Ethan Wei表示 塔湖智能团队拥有丰富的出海经验以及营销领域的海外本土化执行力 希望塔湖智能拥抱AGI赛道 研发
  • Android版数据结构与算法(十):终极之树-红黑树与TreeMap详细解析

    本文目录 一 为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树 既然已经有了AVL这种平衡的二叉排序树 为什么还要有红黑树呢 AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对值不超过1 其是一颗严格的平衡树 这样构建
  • flutter-定位

    Flutter组件之定位 定位方式一 可以在所需组件外层包裹一个Container 利用alignment FractionalOffset x y 进行定位 例子 Container padding EdgeInsets all 5 0
  • 大数据--Hadoop环境部署(3)JDK和ZooKeeper环境配置

    Linux环境搭建 https www cnblogs com Studywith p 16946297 html 免密连接 https www cnblogs com Studywith p 16946310 html 在完成了Linux
  • 如何编写C++以减少CPU分支预测错误?

    利用Intel的vtune测试Hardware Issue选项可以看到分支预测的情况 一般来讲 95 的分支预测成功是正常的 90 表示还有提高的空间 75 表示非常糟糕 如何提高分支预测的效率 下面列举了一些特例表示可以考虑的优化方向 c
  • viewer图片预览插件

    参考github文档https github com fengyuanchen viewerjs options 1 下载插件 2 引入插件 3 参数1 图片外div的dom对象 参数2 预览插件配置项 new Viewer documen
  • PyQt学习笔记:如何调整QTableView中行高和列宽

    PyQt学习笔记 如何调整QTableView中行高和列宽 在使用PyQt制作数据呈现界面时 QTableView是一个常用的组件 但是默认情况下 QTableView的行高和列宽可能不太适合实际需求 需要我们进行调整 本文将介绍如何在QT
  • el-form表单循环验证

  • 【ES实战】索引模板template使用说明

    文章目录 索引模板 模板的管理 创建 修改模板 多模板应用 查询模板 删除模板 版本化模板 索引模板 模板的主要作用 可以帮助简化创建索引的语句 将模板中的配置和映射应用到创建的索引中 新建索引时 索引名称满足index patterns条
  • 如何在工作中快速成长?致工程师的 10 个简单技巧

    作者 江建明 阿里巴巴高级无线开发专家 导读 精英人数的增长速度持续加快后 很多人开始焦虑 我也焦虑 深知要走出焦虑不容易 我想把走出焦虑快速成长的认知和方法写成文章分享给更多人 做成 技术人成长系列 文章给更多人面对面分享 该系列总共三篇
  • MySQl之最全且必会的sql语句

    原文链接 http blog csdn net qq 32059827 article details 51763950 创建一个名称为mydb1的数据库 如果有mydb1数据库则直接使用 如果无则创建mydb1数据库 create dat
  • UE4蓝图 传送带效果

    UE4蓝图 传送带效果 UE4蓝图 传送带效果 关于预览效果 步骤 注意 StaticMesh的Collisin属性中 去 Generte Overlap Events
  • 嵌入式数据结构(单链表)

    嵌入式学习第七天 1 链式存储相较于顺序存储优势 1 内存连续性要求没那么高 2 插入或者删除不用大量 移位操作 2 3 4 link list get wz link q int i link p p q int j 0 if p NUL