嵌入式学习--线性表Day01
嵌入式学习--线性表Day01
顺序表
1.1数组的插入、删除操作
1.2修改为last版本
1.3顺序表相关操作
顺序表、单向链表、单向循环链表、双向链表、双向循环链表、顺序栈、链式栈、循环队列(顺序队列)、链式队列
1)逻辑结构:线性结构
2)存储结构:顺序、链式
3)特点:一对一,每一个节点最多有一个前驱和一个后继,首节点无前驱,尾节点无后继
顺序表
特点:内存连续(数组)
1)逻辑结构 : 线性结构
2)存储结构: 顺序存储结构
3)操作 :增删改查
1.1数组的插入、删除操作
函数名命名规则:
下滑线法:create_empty_seqlist
小驼峰法:createEmptySeqList
大驼峰法:CreateEmptySeqList
练习:
int a[100]={1,2,3,4,5,6,7,8};
//1)向数组的第几个位置插入数据
int *p //保存的数组的首地址
int n//n代表的是数组中有效的元素个数(非数组的长度size 100)8
int post;//位置 代表的是第几个位置,数组元素下标 位置的编号从0开始 position
int data;//插入到数组中的数据
void insertIntoA (int *p,int post,int data,int n)
{
//1.将n-1位置到post位置的数据整体向后移动一位
//2.将新数据data赋值到post位置
}
//删除数组指定位置的数据
void deleteFromA(int *p, int n, int post)
{
//1.将post+1位置----》n-1位置所有数据整体向前移动一个位置,覆盖删除
}
arr.c
#include <stdio.h>
//1)向数组的第几个位置插入数据
void insertIntoA(int *p, int post, int data, int n)
{int i;// 1.将n-1位置到post位置的数据整体向后移动一位for(i=n-1;i>=post;i--)
p[i+1]=p[i];// 2.将新数据data赋值到post位置
p[post] = data;
}
// 2)删除数组指定位置的数据
void deleteFromA(int *p, int n, int post)
{int i;// 1.将post+1位置----》n-1位置所有数据整体向前移动一个位置,覆盖删除for(i=post+1;i<=n-1;i++)
p[i-1]=p[i];
}
//3)遍历输出A
void showA(int *p,int n)
{for(int i=0;i<n;i++)printf("%d ",p[i]);printf("\n");
}int main(int argc, char const *argv[])
{int a[100] = {1, 2, 3, 4, 5, 6, 7, 8};showA(a,8);insertIntoA(a,2,300,8);showA(a,9);deleteFromA(a,9,2);showA(a,8);return 0;
}
1.2修改为last版本
#include <stdio.h>
int last = 7;//n-1,最后一个有效元素下标//1)向数组的第几个位置插入数据
void insertIntoA(int *p, int post, int data)
{int i;// 1.将last位置到post位置的数据整体向后移动一位for(i=last;i>=post;i--)
p[i+1]=p[i];// 2.将新数据data赋值到post位置
p[post] = data;//3. 最后一个有效元素下标+1
last++;
}
// 2)删除数组指定位置的数据
void deleteFromA(int *p,int post)
{int i;// 1.将post+1位置----》last位置所有数据整体向前移动一个位置,覆盖删除for(i=post+1;i<=last;i++)
p[i-1]=p[i];//2. 最后一个有效元素下标-1
last--;
}
//3)遍历输出A
void showA(int *p)
{for(int i=0;i<=last;i++)printf("%d ",p[i]);printf("\n");
}int main(int argc, char const *argv[])
{int a[100] = {1, 2, 3, 4, 5, 6, 7, 8};showA(a);insertIntoA(a,2,300);showA(a);deleteFromA(a,2);showA(a);return 0;
}
1.3顺序表相关操作
#ifndef _SEQLIST_H__
#define _SEQLIST_H__
#include <stdio.h>
#include <stdlib.h>#define N 5
typedef struct seq
{int data[N];int last;
}seqlist_t;//1.创建一个空的顺序表
seqlist_t *CreateEpSeqlist();//返回的是申请空间的首地址
//2.向顺序表的指定位置插入数据
int InsertIntoSeqlist(seqlist_t *p, int post,int data);//post第几个位置,data插入的数据
//3.遍历顺序表sequence 顺序 list 表
void ShowSeqlist(seqlist_t *p);
//4.判断顺序表是否为满,满返回1 未满返回0
int IsFullSeqlist(seqlist_t *p);
//5.判断顺序表是否为空
int IsEpSeqlist(seqlist_t *p);
//6.删除顺序表中指定位置的数据post删除位置
int DeletePostSeqlist(seqlist_t *p, int post);
//7.清空顺序表
void ClearSeqList(seqlist_t *p);
//8.修改指定位置的数据
int ChangePostSeqList(seqlist_t *p,int post,int data);//post被修改的位置,data修改成的数据
//9.查找指定数据出现的位置
int SearchDataSeqList(seqlist_t *p,int data);//data代表被查找的数据#endif
相关文章:
嵌入式学习--线性表Day01
嵌入式学习--线性表Day01 顺序表 1.1数组的插入、删除操作 1.2修改为last版本 1.3顺序表相关操作 顺序表、单向链表、单向循环链表、双向链表、双向循环链表、顺序栈、链式栈、循环队列(顺序队列)、链式队列 1)逻辑结构:线性结构 …...
Rust 全局变量的最佳实践 lazy_static/OnceLock/Mutex/RwLock
在实际项目开发中,难免需要用到全局变量,比如全局配置信息,全局内存池等,此类数据结构可能在多处需要被使用,保存为全局变量可以很方便的进行修改与读取。 在Rust中,如果只是读取静态变量是比较简单的&…...

【L波段差分干涉SAR卫星(陆地探测一号01组)】
L波段差分干涉SAR卫星(陆地探测一号01组) L波段差分干涉SAR卫星(陆地探测一号01组)是我国自主研发的重要卫星系统,以下是对该卫星的详细介绍: 一、基本信息 卫星组成:陆地探测一号01组由A星…...

第五部分:6---信号的递达
目录 信号的递达流程: 信号在什么时候递达? 用户态和内核态: 内核态、用户态在页表的映射关系: 操作系统如何得知当前执行状态是用户态还是内核态? 操作系统如何处理被捕捉的信号? 信号的递达流程&am…...
深入解析 ARM64 SOC RK3568的 /proc/interrupts 输出
在 Linux 系统中,/proc/interrupts 文件提供了系统中断的详细信息,是性能分析和故障排除的重要工具。本文将重点解析 RK3568环境下该文件的输出格式及其背后的结构。 什么是 /proc/interrupts? /proc/interrupts 文件记录了所有中断的信息&…...
Android常用C++特性之std::unique
声明:本文内容生成自ChatGPT,目的是为方便大家了解学习作为引用到作者的其他文章中。 std::unique 是 C 标准库中的一个算法函数,用于移除相邻的重复元素,使每个相邻的元素在容器中保持唯一。它不会真正移除元素,而是通…...

Redis篇(Java操作Redis)
目录 讲解一:简介 讲解二:Jedis Github 一、创建项目、 二、添加依赖 三、配置文件 四、Java连接Redis 五、通过Redis连接池获取连接对象并操作服务器 六、封装JedisUtil对外提供连接对象获取方法 七、Java操作Redis五种数据类型 1. 连接与释放…...
Cypress自动化Github workflow
目录 Workflow .github/workflows/build.yaml jobs build-deploy: .github/wrokflows/execute-tests.yaml 输入参数 jobs restart_failed_dp: seed_data: execute-tests: Docker File docker/Dockerfile.base docker/service-dockerfile.base Deploy deploy/tes…...
Hbase高阶知识:HBase的协处理器(Coprocessor)原理、使用实例、高级技巧和案例分析
目录 第一章 Hbase概述与基础知识 1.1 HBase的架构与数据模型 1.2 什么是协处理器 1.3 协处理器的优势 第二章 协处理器的工作原理 2.1 协处理器的运行机制 2.2 协处理器的注册与监听 2.3 协处理器与RegionServer的交互 第三章 协处理器的类型 3.1 端点协处理器 3.2…...
海尔嵌入式硬件校招面试题及参考答案
使用 QT 的经验及对控件和信号与槽机制的了解 我使用 QT 有一段时间了,在项目开发中积累了较为丰富的经验。 QT 中的控件丰富多样,涵盖了各种常见的界面元素需求。例如按钮、文本框、列表框、进度条等。这些控件具有良好的可定制性,可以通过属性设置、样式表等方式来调整外观…...
Leetcode基础算法篇|202409(4)贪心算法
贪心算法(Greedy Algorithm):一种在每次决策时,总是采取在当前状态下的最好选择,从而希望导致结果是最好或最优的算法。 学习链接:leetcode-notes/docs/ch04/04.04/04.04.02-Exercises.md at main datawha…...

echarts 导出pdf空白原因
问题阐述 页面样式: 导出pdf: 导出pdf,统计图部分为空白。 问题原因 由于代码中进行了dom字符串的复制,而echarts用canvas绘制,canvas内部内容不会进行复制,只会复制canvas节点,因此导出pdf空白。 解决…...

数据结构及基本算法
目录 第一章 概论 第一节 引言 第二节 基本概念和常用术语 第三节 算法的描述与分析 第二章 线性表 第一节 线性表定义和基本运算个 一、线性表的逻辑定义 二、线性表的基本运算 第二节 线性表的顺序存储和基本运算的实现 一、线性表的顺序存储 二、顺序表上基本运算…...

vue3学习记录-computed
vue3学习记录-computed 1.为什么要用computed2.使用方法2.1 基本实例2.2 可写计算属性 1.为什么要用computed 写个购物车的案例 <script setup> import { ref, reactive,computed } from "vue" const tableData reactive([{ name: 商品1, price: 10, num: 1…...

SQLite3模块使用详解
目录 一、引言 1.1 SQLite3 简介 1.2 Python sqlite3 模块 二、连接数据库 2.1 导入 sqlite3 模块 2.2 连接数据库 2.3 创建游标对象 三、执行 SQL 语句 3.1 创建表 3.2 插入数据 3.3 查询数据 3.4 更新数据 3.5 删除数据 四、处理查询结果 4.1 fetchall() 4.2…...

防火墙详解(三)华为防火墙基础安全策略配置(命令行配置)
实验要求 根据实验要求配置防火墙: 合理部署防火墙安全策略以及安全区域实现内网用户可以访问外网用户,反之不能访问内网用户和外网用户均可以访问公司服务器 实验配置 步骤一:配置各个终端、防火墙端口IP地址 终端以服务器为例ÿ…...
假期学习--iOS中的static关键字
iOS中的static关键字 OC的static关键字 OC也提供了Static关键字,但是这个static关键字不能用于修饰成员变量,也就是说Static是不被允许修饰实例变量,同时Static关键字也不被允许修饰方法。Static关键字可以修饰全局变量,局部变量…...

Maya没有Arnold材质球
MAYA 没有Arnold材质球_哔哩哔哩_bilibili...
面试知识点总结篇三
一、arm中断流程和函数 ARM 中断流程 中断触发保存上下文中断向量表执行ISR - 清除中断标志恢复上下文返回中断 二、STM32任务间通信有哪些方式 消息队列、 信号量、共享内存、任务通知 三、uboot内存没驱动之前是怎么操作的 硬件初始化内存检测设置内存映射控制台初始化…...

数据加密标准(DES)详解:原理、步骤及Python实现
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...