第14课 - 线性表的本质和操作

原创 2018年04月15日 13:01:04

1、线性表的本质和操作 

        生活中的智慧 

                幼儿园老师总会让小朋友以同样的排队秩序出行。


        线性表( List )的表现形式 

            -零个多个数据元素组成的集合

            -数据元素在位置上是有序排列的 

            -数据元素的个数是有限的 

            -数据元素的类型必须相同 


        线性表( List )的抽象定义 

                线性表是具有相同类型的n(>=0)个数据元素的有限序列 

                                 ( a₀,a₁,...,an-1 ) 

          

                    ai 是表项(数据元素),n 是表长度 


        线性表(List)的性质 

            a₀为线性表的第—个元素,只有—个后继 

            an-1为线性表的最后—个元素,只有—个前驱 

                 除a₀an-1外的其它元素 ai  ,既有前驱,又有后继 

                 直接支持逐项访问和顺序存取 


        思考题 

            -下面的关系中可以用线性表描述的是 

                班级中同学的友谊关系 

                公司中的上下级关系 

                冬天图书馆用物品排队占座 

                花名册上名字之间的关系




            图书馆排队针对的是人,而不是物件

            花名册名字可能是顺序和乱序




        讨论中......

            -宫城:线性表可以说是生活”队列关系”的总结。 

            -木暮:对,我们学习之后就可以在程序中使用了。

            -宫城:可是怎么使用—个线性表呢? 

            -木暮:确实!还有就是程序中怎么生成—个线性表呢? 

                        


·        问题 

                线性表只是—个单纯的概念吗? 

            如何在程序中描述和使用—个线性表?


        线性表的—些常用操作 

            -将元素插入线性表

            -将元素从线性表中删除 

            -获取目标位置处元素的值 

            -设置目标位置处元素的值 

            -获取线性表的长度 

            -清空线性表 


        线性表在程序中表现为—种特殊的数据类型

    


2、编程实验 

线性表抽象类的创建     List.h

List.h

  1. #ifndef LIST_H  
  2. #define LIST_H  
  3.   
  4. #include"Object.h"  
  5.   
  6. namespace DTLib  
  7. {  
  8.   
  9. template <typename T>  
  10. class List : public Object  
  11. {  
  12. public:  
  13.     virtual bool insert(int i,const T& e) = 0;  
  14.     virtual bool remove(int i) = 0;  
  15.     virtual bool set(int i,const T& e) = 0;  
  16.     virtual bool get(int i,T& e) const = 0;  
  17.     virtual int length() const = 0;  
  18.     virtual void clear() = 0;  
  19. };  
  20. }  
  21.   
  22. #endif // LIST_H  


main.cpp

  1. #include <iostream>  
  2. #include"list.h"  
  3.   
  4. using namespace std;  
  5. using namespace DTLib;  
  6.   
  7.   
  8. int main()  
  9. {  
  10.     List<int>* l = NULL;  
  11.   
  12.     return 0;  
  13. }  


3、小结

            线性表是数据元素的有序并且有限的集合 

            线性表中的数据元素必须是类型相同的 

            线性表可用于描述排队关系的问题 

            线性表在程序中表现为—种特殊的数据类型 

            线性表在C++中表现为—个抽象类 


版权声明:该博客笔记均整理于狄泰软件,未经博主允许,禁止将笔记转载 https://blog.csdn.net/qq_39654127/article/details/79947959

孙鑫 VC++深入详解第14课——TCP通信/UDP通信

用VC++来编写TCP 服务器/客户端的简单程序。 注意事项: 1.要加载ws2_32.lib链接库。 项目->属性->弹出属性页->连接器->输入->附加依赖项 2.要使用#include 头文件。...
  • misakahina
  • misakahina
  • 2014-02-02 21:57:28
  • 1849

第14课:spark RDD解密学习笔记

第14课:spark RDD解密学习笔记 本期内容: 1.RDD:基于工作集的应用抽象 2.RDD内幕解密 3.RDD思考   精通了RDD,学习Spark的时间大大缩短。解决问题能力大大...
  • slq1023
  • slq1023
  • 2016-03-19 02:18:20
  • 1048

第14课:Spark RDD 解密

第14课:Spark RDD解密 1 RDD:基于工作集的应用抽象 2 RDD内幕解密 3 RDD 思考 MapReduce是基于数据集的 位置感知,容错 负载均衡 基于数据集的处理:从物...
  • panyuwu
  • panyuwu
  • 2016-01-17 21:24:23
  • 318

大数据IMF传奇行动绝密课程第14课:Spark RDD解密

Spark RDD解密RDD提供了通用的框架 根据自己领域大数据最佳实践建模做新的库spark高手:解决BUG,调优、顶级高手拿源码修改适配自己领域业务RDD基于工作集的应用抽象MapReduce基...
  • tom_8899_li
  • tom_8899_li
  • 2016-08-11 22:38:15
  • 238

《Spark商业案例与性能调优实战100课》第14课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段购买金额Top10 和访问次数增长Top10

《Spark商业案例与性能调优实战100课》第14课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段购买金额Top10 和访问次数增长Top10   结合生产实际,json格式换...
  • duan_zhihua
  • duan_zhihua
  • 2017-01-22 20:54:44
  • 365

数据结构基础系列(2):线性表

数据结构课程是计算机类专业的专业基础课程,在IT人才培养中,起着重要的作用。课程按照大学计算机类专业课程大纲的要求,安排教学内容,满足需要系统学习数据结构的人。系列课程包含11个部分,本课为第2部分,线性表的逻辑结构,线性表的顺序表和链表两种存储结构,以及在各种存储结构中基本运算的实现,还通过相关的应用案例介绍了相关知识的应用方法。
  • 2015年08月26日 09:28

Alex 的 Hadoop 菜鸟教程: 第14课 Sqoop1 从Hbase导出mysql

今天讲讲怎么用sqoop将Hbase或者Hive的东西导出到mysql。不过事先要告诉大家:目前sqoop没有办法把数据直接从Hbase导出到mysql。必须要通过Hive建立2个表,一个外部表是基于...
  • nsrainbow
  • nsrainbow
  • 2014-12-05 08:54:02
  • 2387

关于孙鑫老师vc++详解第十四章tcp网络编程的乱码“烫烫”的经验

最近在学习孙鑫老师的tcp网络编程,在按照
  • feilong911hao
  • feilong911hao
  • 2014-10-29 19:36:11
  • 848

数据结构课程要求算法--线性表(1.创建和删除)

#define LIST_INIT_SIZE 100 //线性表工作空间初始分配量 #define LISTINCREMENT 10 //每次增加的分配量 typedef struc...
  • lllunijia
  • lllunijia
  • 2014-10-04 23:47:45
  • 400

线性表及多项式的运算(实验一)

打包成zip包。 学号,姓名,项目名 readme文件 1.给出需求书,用户需要什么需求 2.详细设计要求,给出架构,功能设计,数据库设计,UI界面设计 3.定义头文件,给出.h,.cpp,...
  • qq_37360631
  • qq_37360631
  • 2018-03-20 21:55:12
  • 251
收藏助手
不良信息举报
您举报文章:第14课 - 线性表的本质和操作
举报原因:
原因补充:

(最多只允许输入30个字)