c++顺序表与链表的区别

2023-11-18

C++ Lists(链表)

Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.

说起这个访问速率呢?给大家举个很简单的例子

向量(vectors

      也就是顺序表,它的存储方法就类似于c语言的数组,那么数组可以通过下标来访问,所以效率

而用向量表存储数据,假如需要大量地插入,删除数据,效率就很慢了,为什么呢?

原因

    如图e,当我们需要在2后面插入3,为了不影响原有数据,需要将2后面的数据往后挪,那么假如2后面的有n个数据,就需要挪动n次



链表List

       与此对应的便是List了,List的底层实现是链表,我们知道确定链表的唯一要素就是头结点的指针

那么我们访问List元素的时候,需要从头结点一直往后遍历链表,所以时间花销相比向量(vectors) 通过下标访问要大得多

       而链表删除,插入的时候只需要找到对应节点,稍微挪动几个指针即可;

下面以单向链表为例,我们


所以:

    什么时候选择链表List,什么时候选择向量(vectors) ,就看

当访问操作较多的时候使用向量(vectors

当删除插入操作较多的时候使用链表List

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

c++顺序表与链表的区别 的相关文章

  • 安装Java (JDK16)

    本文将在win10的环境下安装jdk16 配置环境变量 1 下载JDK 1 打开官网下载最新的JDK Java SE Development Kit JDK 2 选择对应的版本 3 双击下载的exe进行安装 在安装过程中可以改变安装位置也可
  • MyBatis-Generator插入删除数据返回-2147482646

    在使用MyBatis Generator自动生成的代码进行删除数据时 deleteByPrimaryKey 方法 返回的int 值为 2147482646 正常的逻辑是成功删除返回 1 失败返回 0 未删除数据 特意去官网看了这个方法的说明
  • JAVA 数组(一维数组)

    Java 语言中提供的数组是用来存储固定大小的同类型元素 即存储同种数据类型的多个值 1 声明数组变量和数组初始化 首先必须声明数组变量 才能在程序中使用数组 语法 dataType arrayRefVar 或 dataType array
  • King's Quest【POJ 1904】【Tarjan强连通分量】

    Once upon a time there lived a king and he had N sons And there were N beautiful girls in the kingdom and the king knew
  • CNN,RNN,LSTM区别

    一 CNN 卷积神经网络 在机器学习中 卷积神经网络是一种深度前馈人工神经网络 已成功地应用于图像识别 1 卷积神经网络 是一种前馈神经网络 人工神经元可以响应周围单元 可以进行大型图像处理 卷积神经网络包括卷积层和池化层 卷积神经网络包括
  • 盒子模型大详解

    文档流 网页是一个多层结构 设置样式也是一层一层设置的 最终我们看到的是最上面的那一层 文档流就是网页最底部 我们创建的元素默认都是在文档流中创建的 元素分为两种状态 在文档流 脱离文档流 元素在文档流的特点 块元素 1 独占一行 2 宽是
  • 手机iCloud储存空间已满,怎么解决?

    最近手机总是弹出iCloud储存空间已满 升级的话得花钱 以后再说的话 总感觉有点 不安 担心自己的照片啥的会存不了 所以特意查找了这种方法 如果有出现这种情况的朋友 可以试试 1 找出iCloud空间被哪些档案塞满 iiPhone或iPa
  • Linux之mmv命令批量替换文件名(超详细-python结合mmv)

    文章目录 一 前言 二 各系统安装mmv方法 2 1 CentOS 2 2 Ubuntu And Debain 2 3 MacOS 三 使用方法 3 1 常规使用 3 1 1 常规使用示例 3 2 携带参数使用 3 2 1 携带参数使用示例
  • vue3.x之isRef toRefs isRef readonly 公共数据配置 axios配置 路由配置

    isRef toRefs toRef 参数 源对象 源对象属性 可以用来为源响应式对象上的某个 property 新创建一个 ref 然后 ref 可以被传递 它会保持对其源 property 的响应式连接 也就是说源响应式对象 toRef
  • 3427: Dark roads

    http cs scu edu cn soj problem action id 3427 Description Economic times these days are tough even in Byteland To reduce
  • 向量二范数的求导问题

    现有目标函数 f x 1 2
  • ant design pro 可编辑表格

    import React useRef from react import PageHeaderWrapper from ant design pro layout import ProColumns ActionType TableDro
  • python elif 用法,在Python列表推导中对if / elif语句使用'for'循环

    I am trying to translate this for loop into a list comprehension a 1 2 3 4 5 6 7 8 9 result for i in a if i lt 3 result
  • 数据结构--单链表的插入&删除

    数据结构 单链表的插入 删除 目标 单链表的插入 位插 前插 后插 单链表的删除 单链表的插入 按为序插入 带头结点 ListInsert L i e 插入操作 在表L中的第i个位置上插入指定元素e 思路 找到第i 1个结点 将新结点插入其
  • ElasticSearch学习:ElasticSearch概述

    elasticsearch用于文本搜索的函数库Lucene ElasticSearch是基于此做的封装和增强 ElasticSearch 简称es es是一个开源的高拓展的分布式全文检索引擎 它可以近乎实施的存储 检索数据 本身扩展性很好

随机推荐

  • python代码行末的 \ 符号

    mlm l loss mlm Y hat reshape 1 vocab size mlm Y reshape 1 mlm weights X reshape 1 1 在代码中 是Python中的行继续符号 它用于表示代码行在物理上被分成多
  • 如何开始使用 GitLab 的 CLI 从终端管理 DevOps

    GitLab是面向现代软件交付团队的领先源代码控制和 CI CD 解决方案之一 它提供了一整套用于规划 构建和交付软件项目的功能 GitLab 通常使用其 Web UI 或 API 进行交互 这些选项对于以终端为中心的开发人员来说都不是特别
  • 强化学习笔记(1)-同策回合更新算法

    在我上一篇博客文章https blog csdn net gzroy article details 119509552中对21点的策略进行了研究 采用蒙特卡洛的方式来进行多次的模拟 通过对比不同策略的收益来找到最佳的策略 主要是通过概率的
  • layui的分页实例详解

    原 layui的分页实例详解 2018年09月20日 17 43 07 李什么泽 阅读数 11571 更多 分类专栏 layui分页 版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本
  • ndk错误总结

    1 ndk Unresolved inclusion
  • mongo在linux下的安装(实践记录)

    1 下载安装包 wget http fastdl mongodb org linux mongodb linux i686 1 8 2 tgz 下载完成后解压缩压缩包 tar zxf mongodb linux i686 1 8 2 tgz
  • IDEA Cannot resolve plugin org.apache.maven.pluginsmaven-jar-plugin2.4

    起因 最近在弄Maven项目 在使用IDEA创建Maven项目得时候一直报错 搞的我很头疼 网上搜索答案 都是修改Setting xml 配置本地仓库 然后我测试了好多次都不管用 但是根据错误信息他的确是Maven仓库配置得问题和IDEA
  • 初识GoogleTest

    1 初识GoogleTest 首先要了解googletest是做什么的 主要是单元测试框架 第二是googletest有什么优势 测试过程独立可以重复 测试组织与代码结构保持比较好的一致性 支持跨平台 失败后能够提供完整错误信息 同时支持失
  • 来谈谈 BlockingQueue 阻塞队列实现类 java.util.concurrent.LinkedBlockingQueue(JDK1.8 源码分析)

    LinkedBlockingQueue源码刨析 文章目录 LinkedBlockingQueue源码刨析 前言 一 LinkedBlockingQueue源码部分 1 构造方法 2 成员变量 3 主要方法 1 入队操作 offer方法 pu
  • 毕设草稿保存

    这里写目录标题 参数大小 MobileViT xxs参数 MobileViT xs参数 MobileViT s参数 MobileViT SE模块 无SE模块时 有预训练文件 无预训练文件 有预训练文件且加SE模块之后 无预训练文件且加了SE
  • 【数据结构】——八大排序

    文章目录 1 插入排序 2 冒泡排序 3 希尔排序 4 选择排序 5 快速排序 快排优化 递归改非递归 6 堆排序 7 归并排序 递归归并排序 改成非递归 8 计数排序 9 题目 总结 排序的时间检验 对于不同排序的时间复杂度分析 1 插入
  • 大模型PEFT技术原理(三):Adapter Tuning及其变体

    随着预训练模型的参数越来越大 尤其是175B参数大小的GPT3发布以来 让很多中小公司和个人研究员对于大模型的全量微调望而却步 近年来研究者们提出了各种各样的参数高效迁移学习方法 Parameter efficient Transfer L
  • [Centos] 如何查看linux系统架构(amd64、arm、arm64

    这几天搭建一个基于扣扣的聊天机器人项目时总会无法运行 试想是架构选错了 一直在网上收集查看架构的详细方法 上链接 https www cnblogs com liyuanhong articles 4859816 html
  • 用python实现PyEcharts中的条形图,直方图

    用python实现PyEcharts中的条形图 直方图 笔记仅是个人的学习笔记总结 如有雷同请见谅 条形图 1 普通使用 from pyecharts charts import Bar 引用Faker来生成数据 from pyechart
  • IOS编程教程(十一):在故事板联线(Segue)中的不同视图控制器里传值

    这是我们演示故事板系列的第二篇文章 在前一个教程中 我们介绍了故事板 那是一个在Xcode中方便设计友好用户界面的功能 如果你跟着教程走 从开始到现在 你应该已经建立了一个简单的菜单应用程序的导航界面 但是上一篇我们有一件事没讨论 那就是如
  • table.getn(tableName) 的用法注意。

    转自 http blog sina com cn s blog 4a2e9af90100cv1z html 1 table getn tableName 等同于操作符 作用 得到一个table的大小 注意 该table的key必须是有序的
  • 启航2021

    1 企业数字化升级之路 附下载地址 点击标题 快速进入下载页面 近年来创新技术的不断升级迭代和突如其来的新冠疫情对各 各业数字化转型的推动 让企业管理者普遍认同数字化 智能化的企业运营模式 能够有效助 企业抗击 险 提升效能 获得 远发展
  • matlab-knn使用

    play with knn 1 什么是knn 1 1 什么是knn 1 2 knn适用范围 2 knn实验前的准备 2 1 knn的实验要点 3 knn的matlab实验 使用UCI数据集 3 0 KNN函数自带用例 3 1 UCI数据集
  • 3.docker仓库(Nexus、Harbor)的安装

    本文目录 前言 1 Aliyun 镜像仓库 2 Nexus 1 Nexus 私服搭建 2 登录控制台 3 配置nexus仓库 4 配置nexus仓库地址为安全的镜像地址 5 镜像推送至nexus仓库 6 拉取nexus仓库镜像 3 Harb
  • c++顺序表与链表的区别

    C Lists 链表 Lists将元素按顺序储存在链表中 与 向量 vectors 相比 它允许快速的插入和删除 但是随机访问却比较慢 说起这个访问速率呢 给大家举个很简单的例子 向量 vectors 也就是顺序表 它的存储方法就类似于c语