洋葱汪的博客

学习笔记记录

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

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
个人分类: 数据结构实战开发
上一篇第13课 - 类族结构的进化
下一篇第15课 - 线性表的顺序存储结构
想对作者说点什么? 我来说一句

数据结构第二章

2013年05月02日 959KB 下载

浪曦struts2源码第14

2012年02月06日 3.46MB 下载

Go编程基础-课堂讲义

2017年10月25日 497KB 下载

没有更多推荐了,返回首页

关闭
关闭