链表、结构体和数组对比

2023-05-16

结构体和数组

1、结构体可以存不同类型的元素,而数组只能存同一类型
2、结构体类型需要我们自已定义.数组是用别的类型加[元素个数]
3、结构体内存分配方式很特别,使用对齐原则,不一定是所有元素的字节数和,而数组一定是所有元素的字节数和.
4、结构体指针可以指针名->结构体元素名(取元素);数组不行
5、结构体嵌套可以使用点语法逐级寻找,数组不能

数组和链表

1、数组保存在栈空间中,由编译器自动分配。链表需要程序员自己申请空间,数据保存在堆空间中。

2、数组在内存中占用连续的内存空间,在编译阶段就已经确定了数组的大小,在程序运行时依据预定大小预留空间。链表的每个节点在程序运行时按需逐个申请,节点与节点之间不连续。所以数组空间利用率低,可能存在空间浪费情况。而且数组扩容很麻烦,由于空间固定,所以需要申请一个更大的空间,将旧空间的数据全部移动到新空间

3、数组插入数据和删除数据效率低,插入数据时,待插入位置的的元素和它后面的所有元素都需要向后移动,删除数据时,待删除位置后面的所有元素都需要向前移动。链表删除效率高,只需要将对应节点前一个节点指向对应节点下一个节点即可。

4、数组查询效率高,数组的内存是连续的,想要访问那个元素,直接从数组的首地址处向后偏移就可以访问到了。链表的空间是分散的,所以不具有随机访问性,如要需要访问某个位置的数据,需要从第一个数据开始找起,依次往后遍历,直到找到待查询的位置,故可能在查找某个元素时,时间复杂度达到O(N)

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

链表、结构体和数组对比 的相关文章

  • Cartographer详解

    Cartographer 论文解读 一 Introduction 在建图上应用SLAM并不是一个新的概念 xff0c 这里不再作为本文的重点 本文的贡献在于 xff1a 提出了一种新的基于激光数据的回环检测方法 xff0c 这种方法可以减少
  • C语言实现TCP通信

    C语言通过socket编程实现TCP通信 服务端客户端通信例子 xff1a socket tcp 通信1 xff0c socket tcp通信2 xff0c udp使用讲解 xff0c socket udp通信例子 TCP IP协议 叫做传
  • KF与无迹卡尔曼滤波详解

    这是另一片写卡尔曼滤波的文章 xff0c 亮点在与总结的卡尔曼滤波的五个公式 xff0c 可通过上一篇理解卡尔曼滤波的推导原理 xff0c 本篇用来理解卡尔曼滤波的计算实现 1 xff0e 简介 Brief Introduction 在学习
  • 保存并查看Lego-Loam的三维点云地图

    Loam的安装及运行方法可以参考 https blog csdn net qq 36396941 article details 82973772 本文提供ROS wiki http wiki ros org loam velodyne上无
  • Could not find a package configuration file provided by “OpenCV“ with any of the following names

    CMake Error at opt ros kinetic share catkin cmake catkinConfig cmake 83 find package Could not find a package configurat
  • EKF的通俗理解

    导 xff1a ekf xff0c 扩展卡尔曼滤波简称 xff0c 应用非常广泛 xff1b 1 五个黄金公式 2 应用场合 1 xff09 找清楚模型 2 xff09 对准五个公式的公式 3 xff09 实现 xff1a 求革新值 xff
  • error: Could NOT find pugixml (missing: PUGIXML_LIBRARIES PUGIXML_INCLUDE_DIRS)

    解决办法 xff1a sudo apt get install libpugixml dev sudo apt get install libpugixml1v5
  • STM32小四轴超低成本方案开源项目

    先分享几个小四轴无人机项目 新唐M452飞控开源项目 xff0c 虽然完全开源但是还不够成熟 xff0c PID调节感觉还有些问题 助你轻松DIY四轴飞行器 新唐M452飞控套件评测 电路城 MWC 飞控 xff0c 采用arduino编程
  • Autoware 主要模块

    引言 本文参考Autoware wiki overview xff0c 主要描述了Autoware的整体框架和模块描述 xff0c 主要包括感知和规划两大部分 感知包括定位模块 xff0c 检测模块 xff0c 预测模块 定位模块使用3D
  • DWA算法原理

    DWA算法 局部路径规划简介 机器人在获得目的地信息后 xff0c 首先经过全局路径规划规划出一条大致可行的路线 xff0c 然后调用局部路径规划器根据这条路线及costmap的信息规划出机器人在局部时做出具体行动策略 xff0c ROS中
  • ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

    Intel在Github上开源了支持所有RealSense系列相机的SDK 包括了D400 SR300系列深度相机和T265双目跟踪相机 支持Linux Windows Mac OS以及Android 链接 https github com
  • CMakeLists生成和载入动态链接库

    CMakeLists生成和载入动态链接库 生成动态链接库 新建一个文件夹 xff0c 暂且命名为 makeDllLib 文件夹中放入三个文件 c和 h和 def 其中 def文件是非必须的 xff0c 但它有利于生成 lib文件和导出函数
  • 串口传输 波特率 延时时间的设置

    在进行串口传输的时候 xff0c 波特率太低接收不到 xff0c 波特率太高又丢包 首先 xff0c 传输的报文需要多少时间 起始位1 xff0c 停止位1 xff0c 数据位8 xff0c 则传输时间为 xff1a 1000 xff08
  • 阶段进度条

    public class PhaseProgressView extends View 节点连线宽度 private int mLineWidth 节点个数 private int mNodeNum 选中节点位置 private int m
  • 计算机网络实验——基于TCP协议的socket编程

    一 实验目的 1 实现一个能够在局域网中进行点对点聊天的实用程序 2 熟悉c 43 43 Java等高级编程语言网络编程的基本操作 3 基本了解对话框应用程序的编写过程 4 实现TCP套接字编程 二 实验内容 xff08 一 xff09 实
  • GPRMC 格式

    数据示例 GPRMC 081057 000 A 3117 2144 N 12133 2691 E 0 02 0 00 140521 D 68 在数据 GPRMC lt 1 gt lt 2 gt lt 3 gt lt 4 gt lt 5 gt
  • 音视频开发基础概念

    对一个初学者来说 xff0c 刚刚接触音视频的学习难免会遇到各种个样的术语 xff0c 一开始我也是云里雾里的 xff0c 到现在一点一点接触积累 xff0c 形成一个基本的认识 本文并没有什么高深和详细的知识点 xff0c 旨在记录一些音
  • 音频数据采集-AudioRecord

    一 AudioRecord 和 MediaRecorder Android 提供了两个 API 用于录音 xff0c AudioRecord 和 MediaRecorder AudioRecord 能够获取原始的 PCM 数据 xff0c
  • vector用法

    介绍 1 vector是表示可变大小数组的序列容器 2 就像数组一样 xff0c vector也采用的连续存储空间来存储元素 也就是意味着可以采用下标对vector的元素进行访问 xff0c 和数组一样高效 但是又不像数组 xff0c 它的
  • AAC 音频编码保存和解码播放

    一 编码器 MediaCodec MediaCodec 是 Android 提供的用于对音频进行编解码的类 xff0c 属于硬编解 MediaCodec 在编解码的过程中使用了一组缓冲区来处理数据 如下图所示 基本使用流程如下 xff1a

随机推荐

  • Camera 视频采集,H264 编码保存

    一 前言 上篇文章 AAC 音频编码保存和解码播放 讲述了通过 AudioRecord 录制音频数据 xff0c 并通过 AAC 编码保存为 AAC 文件 这里的 aac 既是一种编码方式 xff0c 也是一种容器 xff0c 因此可以直接
  • 基于Camera、AudioRecord 、MediaCodec 和 MediaMuxer 录制 MP4

    一 前言 在 AAC 音频编码保存和解码播放和Camera 视频采集 xff0c H264 编码保存 两篇文章中介绍了如何通过 AudioRecord 和 MediaCodec 录制 AAC 音频以及如何通过 Camera 和 MediaC
  • 基于 SurfaceView、AudioTrack、MediaCodec 和 MediaExtractor 解码 MP4 播放

    一 前言 上篇文章介绍了 基于Camera AudioRecord MediaCodec 和 MediaMuxer 录制 MP4 录制的过程是这样的 xff0c 那么相应的播放过程就是上述过程的逆过程 xff0c 本篇文章将介绍如何通过 M
  • 研发、运营必备实用工具网站

    目录 1 搜索引擎 2 PPT 3 图片操作 4 文件共享 5 招聘求职 6 程序员面试题库 7 办公 开发软件 8 高清图片 视频素材网站 9 项目开源 10 算法 11 在线工具宝典大全 12 音乐 13 神辅助工具 14 语音处理 1
  • 让人“眼前一亮、不明觉厉”的互联网技术PPT

    目录 1 互联网 1 1 智能 43 1 2 云计算 1 3 5G 2 大数据 2 1 用户画像 2 2 边缘计算 2 3 工业大数据 2 4 医疗大数据 2 5 数据平台 2 6 银行大数据 3 物联网 3 1 物联网产业 3 2 工业物
  • 基于FPGA的电梯控制系统设计

    在本项目中一共分为了五个模块 xff1a 时钟分频 按键消抖 状态控制 蜂鸣 译码显示及流水指示灯 其模块的作用分别是 xff1a 时钟分频 xff1a 将高频率系统时钟通过分频得到不同合适频率的时钟频率作为不同模块的输入时钟 clk xf
  • 【流媒体视频监控平台开发wvp-GB28181-pro】

    wvp GB28181 pro学习心得 wvp与GB28181介绍1 流媒体服务器视频协议介绍2 市面上的流媒体服务器3 wvp GB28181 pro框架需要学习的框架和工具4 工具准备项目整合和配置 wvp与GB28181介绍 学习原因
  • gazebo创建机器人模型06

    gazebo创建机器人模型05 kinect 信息仿真以及显示 kinect摄像头仿真基本流程 xff1a 1 已经创建完毕的机器人模型 xff0c 编写一个单独的 xacro 文件 xff0c 为机器人模型添加 kinect 摄像头配置
  • 【C++】C++中防止头文件重复包含的两种方法

    文章目录 01 错误分析 xff1a 类型重定义 xff08 头文件重复包含 xff09 02 解决方案2 1 微软宏2 2 条件编译2 3 两种方法比较 03 变量被重复包含3 1 解决办法 04 版权声明 amp 总结 01 错误分析
  • C/C++程序员应聘常见面试题深入剖析

    1 引言 本文的写作目的并不在于提供C C 43 43 程序员求职面试指导 xff0c 而旨在从技术上分析面试题的内涵 文中的大多数面试题来自各大论坛 xff0c 部分试题解答也参考了网友的意见 许多面试题看似简单 xff0c 却需要深厚的
  • Nvidia jetson tx2 详细安装、配置教程以及固定ip

    jetson tx2 是什么 一 硬件组装 xff1a 1 将 Wi Fi 天线插上 xff0c 组装好充电器即可 2 接口介绍 xff1a USB接口只有一个 xff08 建议使用USB拓展 xff0c 方便前期配置的时候连接键盘鼠标 x
  • C语言 用指针实现字符串函数 strlen strcpy strcat strcmp

    目录 一 指针模拟实现strlen 函数 1 strlen 函数description 2 用指针实现且将strlen封装 3 运行结果 二 指针模拟实现strcpy 函数 1 strcpy 函数description 2 用指针实现且将s
  • 常用器件介绍

    常用器件介绍 这篇文章主要介绍一些在做电子设计时最最常见的器件 xff0c 针对的是完全的小白们 面包板 首先是搭建设计电路用的面包板 面包板正面图 背面拆解图 面包板是专为电子电路的无焊接实验设计制造的 xff0c 上面有很多小插孔 各种
  • VScode代码格式化解决方案c/c++

    前贴链接 xff1a https tieba baidu com p 7891213649 之前说过研究出来了会和大家分享一下自己是如何解决的 xff0c 于是就有了此贴 首先要说明 xff0c 本文主要是针对c c 43 43 xff0c
  • C语言输入和输出

    文章目录 一 数据输入二 数据输出三 断章取义四 printf输出1 输出描述性的文字2 输出整数3 输出字符4 输出浮点数5 输出字符串6 输出多个内容7 示例 xff08 book12 c xff09 五 scanf输入1 输入整数2
  • c 和 python语法 对比

    直接干货 xff1a 先稍微了解两种语言的基本不同 pythonc执行方式无需手动编译 xff0c 执行时按行读取 xff0c 自动编译成字节码 所以python可轻易被获取源码需要手动进行编译生成机器可直接执行的机器码内存管理有自己的垃圾
  • 删除typora图片目录下失效的图片脚本

    背景 xff1a md中插入图片与word不同 xff0c 在word中图片是拷贝了一份放在文件中 xff0c 与原图片无关 xff0c 所以无论删除哪个互不影响 xff0c 但是md中却不同 xff0c md中插入图片时用超链接的方式从外
  • scanf中‘\n‘的用法和隐患

    读到这篇文章的人90 的可能是遇到了输入字符后 xff0c 回车没有预期的输出 xff0c 连续回车都没用 这种情况可能是因为你在scanf中加了 n xff0c 而且加了不该加的地方 把代码里的 n删了或者再输入一个不是 n的字符再回车
  • c语言使用一维数组实现杨辉三角

    通常使用在实现杨辉三角时使用的时使用二维数组的方式 xff0c 这种方式比较快捷 xff0c 且比较好理解 xff0c 但是使用二维数组浪费了大量的空间 xff0c 又大概一般的空间未被使用 如果使用一维数组进行计算能大大提高空间利用率 首
  • 链表、结构体和数组对比

    结构体和数组 1 结构体可以存不同类型的元素 而数组只能存同一类型 2 结构体类型需要我们自已定义 数组是用别的类型加 元素个数 3 结构体内存分配方式很特别 使用对齐原则 不一定是所有元素的字节数和 而数组一定是所有元素的字节数和 4 结