位置: IT常识 - 正文

基本数据结构:链表(list) C小加 C++博客(基本数据结构包括哪些)

编辑:rootadmin
基本数据结构:链表(list) - C小加 - C++博客基本数据结构:链表(list)作者:C小加更新时间:2012-7-31谈到链表之前,先说一下线性表。线性表是最基本、最简单、也是最常用的一种数

推荐整理分享基本数据结构:链表(list) C小加 C++博客(基本数据结构包括哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:关系数据模型的基本数据结构,四种基本数据结构,四种基本数据结构,四种基本数据结构,计算机最基本数据结构,python基本数据结构,python基本数据结构,四种基本数据结构,内容如对您有帮助,希望把文章链接给更多的朋友!

基本数据结构:链表(list)

作者:C小加更新时间:2012-7-31

谈到链表之前,先说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。

顺序存储结构就是两个相邻的元素在内存中也是相邻的。这种存储方式的优点是查询的时间复杂度为O(1),通过首地址和偏移量就可以直接访问到某元素,关于查找的适配算法很多,最快可以达到O(logn)。缺点是插入和删除的时间复杂度最坏能达到O(n),如果你在第一个位置插入一个元素,你需要把数组的每一个元素向后移动一位,如果你在第一个位置删除一个元素,你需要把数组的每一个元素向前移动一位。还有一个缺点,就是当你不确定元素的数量时,你开的数组必须保证能够放下元素最大数量,遗憾的是如果实际数量比最大数量少很多时,你开的数组没有用到的内存就只能浪费掉了。

我们常用的数组就是一种典型的顺序存储结构,如图1。

链式存储结构就是两个相邻的元素在内存中可能不是相邻的,每一个元素都有一个指针域,指针域一般是存储着到下一个元素的指针。这种存储方式的优点是插入和删除的时间复杂度为O(1),不会浪费太多内存,添加元素的时候才会申请内存,删除元素会释放内存,。缺点是访问的时间复杂度最坏为O(n),关于查找的算法很少,一般只能遍历,这样时间复杂度也是线性(O(n))的了,频繁的申请和释放内存也会消耗时间。

基本数据结构:链表(list)  C小加  C++博客(基本数据结构包括哪些)

顺序表的特性是随机读取,也就是访问一个元素的时间复杂度是O(1),链式表的特性是插入和删除的时间复杂度为O(1)。要根据实际情况去选取适合自己的存储结构。

链表就是链式存储的线性表。根据指针域的不同,链表分为单向链表、双向链表、循环链表等等。

一、 单向链表(slist)

链表中最简单的一种是单向链表,每个元素包含两个域,值域和指针域,我们把这样的元素称之为节点。每个节点的指针域内有一个指针,指向下一个节点,而最后一个节点则指向一个空值。如图2就是一个单向链表。

一个单向链表的节点被分成两个部分。第一个部分保存或者显示关于节点的信息,第二个部分存储下一个节点的地址。单向链表只可向一个方向遍历。

我写了一个简单的C++版单向链表类模板,就用这段代码讲解一下一个具体的单向链表该怎么写(代码仅供学习),当然首先你要具备C++基础知识和简单的模板元编程。完整代码

首先我们要写一个节点类,链表中的每一个节点就是一个节点类的对象。如图3。

代码如下:

template<classT>classslistNode{public:slistNode(){next=NULL;}//初始化Tdata;//值slistNode*next;//指向下一个节点的指针};

第二步,写单链表类的

本文链接地址:https://www.jiuchutong.com/zhishi/304090.html 转载请保留说明!

上一篇:discuz怎么添加广告位?自定义广告位方法浅析(discuz怎么用)

下一篇:Vueenter回车导致页面刷新问题及解决(vue实现回车登录)

  • 荣耀x10和华为畅享z的区别有哪些(荣耀X10和华为畅享50哪个好)

    荣耀x10和华为畅享z的区别有哪些(荣耀X10和华为畅享50哪个好)

  • 隐私里不显示应用(隐私里不显示应用图标)

    隐私里不显示应用(隐私里不显示应用图标)

  • 扣扣视频怎么关闭麦克风(扣扣视频怎么关闭自己的摄像头)

    扣扣视频怎么关闭麦克风(扣扣视频怎么关闭自己的摄像头)

  • 小米手机解除号码标记怎么弄(小米手机解除号码黑名单)

    小米手机解除号码标记怎么弄(小米手机解除号码黑名单)

  • 抖音均衡器怎么调(抖音音响均衡器设置图)

    抖音均衡器怎么调(抖音音响均衡器设置图)

  • 显卡硅脂多久换一次(显卡硅脂涂多厚)

    显卡硅脂多久换一次(显卡硅脂涂多厚)

  • 钉钉浮窗看抖音算时间吗(钉钉悬浮窗看抖音会不会计入时长)

    钉钉浮窗看抖音算时间吗(钉钉悬浮窗看抖音会不会计入时长)

  • 幻灯片中的对象有哪些(幻灯片中的对象一般包括哪几部分)

    幻灯片中的对象有哪些(幻灯片中的对象一般包括哪几部分)

  • 淘宝超时关闭啥意思(淘宝超时关闭但已付款了)

    淘宝超时关闭啥意思(淘宝超时关闭但已付款了)

  • iphone括号2什么意思(苹果括号)

    iphone括号2什么意思(苹果括号)

  • ac220v50hz是什么意思(ac220v60hz什么意思)

    ac220v50hz是什么意思(ac220v60hz什么意思)

  • id全称是什么(id是什么)

    id全称是什么(id是什么)

  • evran00是什么型号(ev0是什么意思)

    evran00是什么型号(ev0是什么意思)

  • rneal00是什么机型(rnl-al00是什么型号)

    rneal00是什么机型(rnl-al00是什么型号)

  • 微信人脸识别怎么解除(微信人脸识别怎么改人脸)

    微信人脸识别怎么解除(微信人脸识别怎么改人脸)

  • ps怎么储存为psd(ps怎么储存为ps文件)

    ps怎么储存为psd(ps怎么储存为ps文件)

  • 怎样下载秒懂百科里面的视频(怎样下载秒懂百科小视频)

    怎样下载秒懂百科里面的视频(怎样下载秒懂百科小视频)

  • 华为手机怎么把文字变成电子版(华为手机怎么把时间设置到屏幕上)

    华为手机怎么把文字变成电子版(华为手机怎么把时间设置到屏幕上)

  • vivo打电话黑屏怎么调(vivo打电话黑屏怎么回事)

    vivo打电话黑屏怎么调(vivo打电话黑屏怎么回事)

  • 手机京东评价怎么删除(手机京东评价怎样删除)

    手机京东评价怎么删除(手机京东评价怎样删除)

  • 淘宝商品属性是什么(淘宝开店商品属性)

    淘宝商品属性是什么(淘宝开店商品属性)

  • 荣耀v20有没有防抖(荣耀v20有没有防抖功能)

    荣耀v20有没有防抖(荣耀v20有没有防抖功能)

  • apple watch series4可以播放音乐吗

    apple watch series4可以播放音乐吗

  • 公式循环引用警告怎么处理(如何解决公式循环引用)

    公式循环引用警告怎么处理(如何解决公式循环引用)

  • 小度在家怎么激活(小度在家怎么激活使用)

    小度在家怎么激活(小度在家怎么激活使用)

  • 显示器dp接口和hdmi有什么区别(显示器dp接口是什么样子?)

    显示器dp接口和hdmi有什么区别(显示器dp接口是什么样子?)

  • java使用同步的注意点(java中同步有两种方法)

    java使用同步的注意点(java中同步有两种方法)

  • 未达起征点增值税申报表怎么填
  • 借款合同印花税减免优惠政策2023
  • 建筑业普票和专票的比例
  • 处置资产开啥发票
  • 自然人报税系统怎么进入单位报税系统
  • 公司购买的打印机
  • 资产处置收益是什么意思
  • 税务申报有什么技巧
  • 招标文件费属于哪类税收编码
  • 简易计税和一般计税的区别
  • 无形资产内部研究开发支出的确认和计量
  • 冲减以前年度多计的管理费用分录
  • 发票融资贷款应该怎么做账?
  • 投资者投入固定资产的成本
  • 小规模纳税人税率有几种
  • 当月没有认证的发票要勾选吗
  • 印花税合同金额和结算金额不一致
  • 承租人转租需要交税吗
  • 什么企业做汇算清缴报告
  • 纳税调整增加额和纳税调整减少额
  • 本月应该确认收入,但是一般下月才开票该怎么处理?
  • 税率简并的影响因素
  • 预收美元和发票的关系
  • 个税累计预缴税额税率表是年还是月
  • 企业风险应对的基本类型包括
  • 事业单位存货包括
  • 资产负债表日后调整事项会计处理
  • 支付境外关联方借款利息需要的
  • linux对硬件的要求
  • 月末是指
  • services. exe
  • MAC OS X 10.12.5 beta 4怎么升级 OS X 10.12.5 beta 4升级图文教程
  • 往来账怎么处理
  • 公司代扣税
  • php异常处理和错误处理
  • chatGPT背后的真正逻辑
  • 中国版ChatGPT即将来袭-国内版ChatGPT入口
  • 员工工资属于什么会计科目
  • 免征增值税账务怎么处理
  • 对公账户走账是怎么回事
  • js异步方式有哪些
  • 织梦怎么新建页面
  • dedecms更新
  • 个体工商户季度超过9万怎么交税
  • sql server存储过程写法
  • 低值易耗品如何界定
  • 一般纳税人抵扣怎么算
  • 建筑劳务清包工账务处理
  • 公司为小规模纳税人
  • 应收账款的会计要素
  • 银行收到一笔款项企业尚未入账属于什么情况的未达账项
  • 营改增后租金收入交什么税
  • 货已经收到未收到怎么办
  • 筹建期的财务费怎么算
  • 支票丢失需要登报吗
  • 开窗函数窗口范围
  • WinXP系统VPN连接经常性自动断开的4个解决方法
  • freebsd使用
  • safeplugin是什么软件
  • xmpdisabled什么意思
  • win8系统运行在哪里
  • 无人值守工厂
  • 如何进入xp系统
  • windows8.1更新windows10
  • Win10系统怎么添加字体
  • win7如何禁用网卡
  • Linux网络抓包工具
  • windows8.1版本区别
  • skype登录不了一直转圈
  • fetch怎么用
  • javascript RegExp 使用说明
  • Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
  • linux 映射 fn键
  • jquery操作元素样式
  • php7 数组
  • 前端实现图片编辑
  • javascript的核心组成部分
  • 发票怎样读入金税开票系统
  • 党费的缴纳是否扣除所得税
  • 杭州地税局客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设