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

  • 未来的SEO:移动页面决定桌面搜索排名(移动发展的趋势2020)

    未来的SEO:移动页面决定桌面搜索排名(移动发展的趋势2020)

  • 支付宝不绑定银行卡可以正常使用吗(支付宝不绑定银行卡最多可以收多少钱)

    支付宝不绑定银行卡可以正常使用吗(支付宝不绑定银行卡最多可以收多少钱)

  • vivox70pro+怎么设置自动关机(vivox70pro怎么设置打电话不断网)

    vivox70pro+怎么设置自动关机(vivox70pro怎么设置打电话不断网)

  • 快手主页动态背景图怎么设置(快手主页动态背景图怎么更换)

    快手主页动态背景图怎么设置(快手主页动态背景图怎么更换)

  • word怎么邮件合并(word怎么邮件合并成绩单)

    word怎么邮件合并(word怎么邮件合并成绩单)

  • 电脑怎么连接热点共享网络(电脑怎么连接热点wifi)

    电脑怎么连接热点共享网络(电脑怎么连接热点wifi)

  • 苹果11怎么设置自拍不反(苹果11怎么设置信任软件)

    苹果11怎么设置自拍不反(苹果11怎么设置信任软件)

  • 美团共享单车怎么关锁(美团共享单车怎么用)

    美团共享单车怎么关锁(美团共享单车怎么用)

  • 微信电话的静音是静自己这边的吗(微信电话的静音是关闭麦克风吗)

    微信电话的静音是静自己这边的吗(微信电话的静音是关闭麦克风吗)

  • 计算机的液晶显示器使用的颜色模式是(计算机的液晶显示器的颜色模式)

    计算机的液晶显示器使用的颜色模式是(计算机的液晶显示器的颜色模式)

  • 微信亲属卡消费对方看得到买什么吗(微信亲属卡消费对方知道明细吗)

    微信亲属卡消费对方看得到买什么吗(微信亲属卡消费对方知道明细吗)

  • 光能电子秤没电了怎么办(光能电子秤不亮了是什么情况)

    光能电子秤没电了怎么办(光能电子秤不亮了是什么情况)

  • c盘压缩驱动器后对电脑运行有影响吗(c盘压缩驱动器以节约磁盘空间后无法启动)

    c盘压缩驱动器后对电脑运行有影响吗(c盘压缩驱动器以节约磁盘空间后无法启动)

  • ipad支持内存卡吗(ipad支持内存卡扩展吗)

    ipad支持内存卡吗(ipad支持内存卡扩展吗)

  • 淘宝注销了能再申请吗(淘宝注销了再注册是新人吗)

    淘宝注销了能再申请吗(淘宝注销了再注册是新人吗)

  • 淘宝标签是什么意思(淘宝标签怎么写)

    淘宝标签是什么意思(淘宝标签怎么写)

  • 路由表中包含哪些信息(路由表中包含哪一项信息)

    路由表中包含哪些信息(路由表中包含哪一项信息)

  • 手机有多少个零件(手机有多少个零件是国外的)

    手机有多少个零件(手机有多少个零件是国外的)

  • 手机圆圈1怎么打(手机圆圈1怎么输入)

    手机圆圈1怎么打(手机圆圈1怎么输入)

  • p30pro防抖在哪里设置(p30pro 光学防抖)

    p30pro防抖在哪里设置(p30pro 光学防抖)

  • 苹果耳机二代上市时间(苹果耳机二代上面的按钮)

    苹果耳机二代上市时间(苹果耳机二代上面的按钮)

  • 私人定制AI绘画——快速finetune stable diffusion教程(私人定制ai绘画下载)

    私人定制AI绘画——快速finetune stable diffusion教程(私人定制ai绘画下载)

  • 金税盘的会计科目
  • 金税三期怎么合理避税
  • 出口货物退免税政策
  • 公司账户转账给个人怎么合理避税?
  • 经营性现金净流量为负数怎么解释
  • 个体户缴纳经营所得个税怎么算的
  • 固定资产转固后发现少转费用了怎么办
  • 外贸企业出口货物
  • 向金融企业借款利息支出可以税前扣除吗
  • 应收账款少收的款分录
  • 进口小汽车消费税组成计税价格
  • 非独立核算的公司怎么报税
  • 种植保险包括
  • 教育培训机构涉税问题
  • 开票金额与实际金额差5元
  • 企业核算方法
  • 费用报销单如何粘贴票据
  • 小规模纳税人 核定
  • 简易办法计税销售额如何填写
  • 怎么查银行账户余额
  • 小规模季报都报哪些税种
  • 个体户开劳务费税率
  • 如何设置电源键关闭屏幕
  • 初学者如何
  • 电脑系统出问题了怎么办
  • windows不能打开exe文件
  • ospf区域间路由和区域内路由
  • tim模块
  • PHP:iconv_mime_decode()的用法_iconv函数
  • 领料单出库单区别
  • 退货时会计分录的银行存款能是负数吗
  • 进项税额不得抵扣的情况有哪些
  • 合伙企业分红所得税如何少交
  • jquery 批量删除
  • 建筑劳务公司的法人代表有什么责任
  • 增值税申报表上期留抵税额怎么填
  • winform 文件上传
  • 统计 α
  • python中max函数的几种用法
  • python中重写构造方法
  • mysql union和join
  • 国地税合并后工资仍然不一致
  • 员工旅游的费用账务处理
  • 城建税要计入税金及附加吗
  • 分期收款方式确认收入的时间
  • 资金结存属于资产科目吗
  • 非税收入票据可以跨年度使用吗
  • access untagged
  • sa密码不满足强密码要求
  • 建筑公司跨区域经营预缴
  • 交房租会计分录怎么写好
  • 收到设计费分录怎么写
  • 收到工程进度款怎么做分录
  • 对非本单位的营销方案
  • 未开发票已收款如何做账?
  • 固定资产应计入什么账户
  • 发票开多了如何做凭证?
  • java调用jni
  • win10下载mysql图解
  • 关于国际学校
  • windows刷新快捷键是什么
  • windows10更新推送
  • linux在服务器的份额
  • linux怎么禁用用户
  • unity Toggle Groud
  • unity分发平台
  • react either
  • 局域网扫描器
  • unity3d脚本执行顺序
  • nodejs基本原理
  • 批处理基础知识
  • python的删除命令
  • js函数的使用规则
  • javascript高级程序设计最新版
  • jquery 图片裁剪
  • centos 安装完成后无法启动
  • 燃气号如何查询
  • 增值税发票综合服务平台升级
  • 涉农项目有哪些项目
  • 新疆税务局网站官网首页
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设