位置: 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实现回车登录)

  • 俩个开关控制一个灯怎么接线(俩开关控制一个灯怎么接线)

    俩个开关控制一个灯怎么接线(俩开关控制一个灯怎么接线)

  • e5 2630相当于什么cpu(e5 2630v2相当于)

    e5 2630相当于什么cpu(e5 2630v2相当于)

  • 验证apple id服务器出错是什么意思(苹果id服务验证失败)

    验证apple id服务器出错是什么意思(苹果id服务验证失败)

  • soul匹配是双向的吗(soul双方匹配度怎么涨)

    soul匹配是双向的吗(soul双方匹配度怎么涨)

  • k30变焦版和标准版有什么区别(变焦版 标准版 k30pro)

    k30变焦版和标准版有什么区别(变焦版 标准版 k30pro)

  • id无效或者不支持怎么办(苹果id显示无效或不支持怎么办)

    id无效或者不支持怎么办(苹果id显示无效或不支持怎么办)

  • 电脑亮度怎么调笔记本(电脑亮度怎么调亮一点)

    电脑亮度怎么调笔记本(电脑亮度怎么调亮一点)

  • 淘宝好友可以看到我的足迹吗(淘宝好友可以看见什么)

    淘宝好友可以看到我的足迹吗(淘宝好友可以看见什么)

  • iphone id是什么(iPhone ID是什么意思)

    iphone id是什么(iPhone ID是什么意思)

  • 华为mate30怎么把天气添加到桌面(华为mate30怎么把联系人导入sim卡)

    华为mate30怎么把天气添加到桌面(华为mate30怎么把联系人导入sim卡)

  • 抖音短视频下载失败是什么原因(抖音短视频下载安装最新版2020)

    抖音短视频下载失败是什么原因(抖音短视频下载安装最新版2020)

  • 小米蓝牙耳机199和399的区别(小米蓝牙耳机怎么重新配对)

    小米蓝牙耳机199和399的区别(小米蓝牙耳机怎么重新配对)

  • qq关联怎么看不到对方的聊天记录(qq关联怎么看不到对方的消息提醒)

    qq关联怎么看不到对方的聊天记录(qq关联怎么看不到对方的消息提醒)

  • 全球上网插件能卸载吗(全球上网工具)

    全球上网插件能卸载吗(全球上网工具)

  • cpu温度过高有什么影响(cpu温度高会有什么影响)

    cpu温度过高有什么影响(cpu温度高会有什么影响)

  • 微信群邀请几天有效(微信群聊群发)

    微信群邀请几天有效(微信群聊群发)

  • iphone5s内存有几种(苹果5s内存有几个版本)

    iphone5s内存有几种(苹果5s内存有几个版本)

  • 手机密码打不开怎么办(oppo手机密码打不开)

    手机密码打不开怎么办(oppo手机密码打不开)

  • 无线网电视怎么连接(无线网电视怎么安装)

    无线网电视怎么连接(无线网电视怎么安装)

  • 美团如何购买会员红包(在美团上如何购买会员)

    美团如何购买会员红包(在美团上如何购买会员)

  • vivox27手机降温在哪里(vivox27手机降温怎么关闭)

    vivox27手机降温在哪里(vivox27手机降温怎么关闭)

  • 手机店分期买手机需要什么条件(手机店分期买手机首付多少)

    手机店分期买手机需要什么条件(手机店分期买手机首付多少)

  • iphone屏幕防偷窥设置(苹果屏幕防止偷窥怎么启动)

    iphone屏幕防偷窥设置(苹果屏幕防止偷窥怎么启动)

  • 医疗健康app功能有哪些(医疗健康app下载数据)

    医疗健康app功能有哪些(医疗健康app下载数据)

  • 医疗机构销售药品需要销售记录吗
  • 劳务公司的个税如何申报
  • 可以公账户给私账转账吗
  • 在建工程贷款利息分录
  • 一般纳税人登记证明
  • 个人所得税减免 租房没有合同编号
  • 小规模纳税人如何升级为一般纳税人
  • 非本公司员工如何申报个税
  • 公司交的物业费入什么科目
  • 上年留抵税,次年抵扣分录
  • 票据行为为什么没有付款
  • 企业哪些费用属于重要费用
  • 红字发票账务处理摘要
  • 促销服务费能抵增值税吗
  • 关于补充养老保险
  • 个人应纳税所得额怎么算
  • 企业收到要发放给员工的补贴
  • 集团内部资金借贷制度
  • 预交增值税扣税绑不了三方
  • 银行定期存款账户
  • i7 5960X评测跑分参数介绍
  • 净资产有哪些科目
  • win11如何降到win10
  • 临时工工资应该找人力资源要吗
  • bios相关概念
  • 把原材料给别人加工怎么入账
  • php23种设计模式
  • 押金少退侵犯了哪条法律
  • 如何启用系统引擎
  • 应付账款周转天数长对企业的影响
  • 进程aissca.exe
  • php播放本地音乐
  • 企业与政府所签的合同
  • php通用分页类
  • php 常用算法
  • 服务型制造收入
  • 无形资产商标权摊销
  • phpcms文档
  • phpcms添加内容
  • 出售长期股权投资
  • 中小企业发展专项资金亮点 免申即享
  • ibm db2认证
  • 最新出口退税申报需要哪些资料
  • 独资合伙企业的特点
  • 4s店交首付分期多久
  • 销售收入打折后怎么做账
  • 一般纳税人开票流程
  • 赠送样品视同销售增值税该怎么做账务处理呢?
  • 企业购车购置税怎么算
  • 生产成本直接人工怎么算
  • 金蝶美金账户怎么删除
  • 月末一次加权平均和移动加权平均的区别
  • 销售商品托收承付怎么确认收入
  • sql入门课程
  • php的每条语句以什么结尾
  • 数据结构 简书
  • fedora改密码
  • linux给root权限
  • linux搭建gitlab
  • win7系统怎么查看
  • aspnet_admin.exe进程是安全的吗 aspnet_admin进程信息查询
  • 局域网 打印机 共享
  • 怎么在mac上看电视剧
  • linux中比较文件链接数的变化
  • win8.1怎么重新装系统
  • android 游戏平台
  • visual studio 10 cocos2dx项目移植到eclipse的android项目(配置请参照上一篇文章开发环境搭建)
  • 图像而已
  • perl正则表达式
  • python文本处理教程
  • cssimport
  • linux内核讲解
  • Python中的多行注释文档编写风格汇总
  • 税务电子发票怎么开
  • 主管税务机构
  • 深圳地税局地址工作时间
  • 宁波北仑有哪些服装厂
  • 代理记账代理记账价格
  • 现在哪个保险公司车险好
  • 2019年汽车购置税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设