18_顺序存储线性表的分析

作者: 编程半岛 | 来源:发表于2018-01-23 16:59 被阅读5次

关键词:顺序存储线性表的效率分析、长度相同的两个SeqList,插入和删除操作的平均耗时是否相同?、对于容器类型的类,可以考虑禁用拷贝构造和赋值操作

1. 效率分析

2. 问题:长度相同的两个SeqList,插入和删除操作的平均耗时是否相同?

SeqList<int> sli; 其大小为5
SeqList<string> slis; 其大小为5

上述两个SeqList,一个类型为intsli,一个类型为stringslis,由于类型的不同会引起效率的不同。如当对string类型进行插入操作时,其for循环内的赋值操作效率较低,因为将前一个元素赋值给后一个元素时,会调用string类中的strcpy。因此相同长度的SeqList插入和删除操作耗时需要看其类型,而不是仅仅参考大O表示法。

3. 下面的代码正确吗?为什么?

两个delete释放了同一片堆内存空间

d2 = d1 调用了拷贝构造函数, d1 和 d2这两个对象的内部指针会指向同一片堆内存空间,当调用析构函数时,会释放同一片内存空间

总结: 对于容器类型的类,可以考虑禁用拷贝构造和赋值操作

4. 下面代码正确吗?为什么?

对于线性表操作符[]只有在线性表中有元素的时候才能访问,不能作为赋值时候使用。
顺序存储结构线性表提供了数组操作符重载,通过重载能够快捷方便的获取目标位置处的数据元素,在具体的使用形式上类似数组,但是由于本质不同,不能代替数组使用

5. 小结

  • 顺序存储线性表的插入和删除操作存在重大效率隐患
  • 线性表作为容器类,应该避免拷贝构造和赋值操作
  • 顺序存储线性表可能被当作数组误用

声明:此文章仅是本人在学习狄泰学院《数据结构实战开发教程》所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

相关文章

  • 18_顺序存储线性表的分析

    关键词:顺序存储线性表的效率分析、长度相同的两个SeqList,插入和删除操作的平均耗时是否相同?、对于容器类型的...

  • 线性表(二)——单链表的表示和实现

    在上篇文章中我们分析讨论了线性表的顺序存储结构顺序表的原理和实现,这篇文章将分析讨论线性表另外一种存储结构链式存储...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 数据结构之有序线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构以及线性表的链式存储结构,今天接着写有序线性表的链式存储结 ...

  • 数据结构与算法(二)--- 单向循环链表

    线性表 线性表分为顺序存储结构和链式存储结构 存储方式 顺序存储结构用一段连续的存储单元依次存储线性表的数据元素;...

  • 数据结构和算法之一——线性表_2_顺序结构存储

    线性表存储结构分类线性表有两种物理存储结构:1)顺序存储结构;2)链式存储结构 顺序存储结构2.1定义:线性表的顺...

  • 数据结构——顺序表

    顺序表:采用顺序存储方式的线性表称为顺序表 顺序存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素,...

  • 线性表--顺序存储结构

    一、线性表的顺序存储结构 线性表有两种物理存储结构:顺序存储结构和链式存储结构。 顺序存储结构 ①定义:用一段地址...

  • 线性表及应用

    线性表 “线性表(List):零个或多个数据元素的有限序列。” 线性表的顺序存储结构 线性表的顺序存储结构,指的是...

网友评论

    本文标题:18_顺序存储线性表的分析

    本文链接:https://www.haomeiwen.com/subject/ympsaxtx.html