首页 > 其他 > 详细

第十四课 线性表的本质和操作

时间:2018-08-19 14:33:40      阅读:156      评论:0      收藏:0      [点我收藏+]

线性表(List)的表现形式:

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

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

  数据元素的个数是有限的

  数据元素的类型必须相同

线性表的抽象定义:

技术分享图片

 

线性表的性质:

  a0为线性表的第一个元素,只有一个后继

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

  除了a0和an-1外,其他的元素ai,既有前驱又有后继

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

我们思考下面的问题:

技术分享图片

 

班级同学之间的关系不是一对一的,所以不能用线性表描述

公司中的领导可以领导很多人,所以不能用线性表描述

用物品排队占座是不能用线性表描述的,虽然是一对一的关系,但是排队的主体是人,而物品和人不是同一类元素

花名册的名字要看是怎么写的,如果是顺序写的,就可以用线性表描述,如果是没有规律的乱排就不能用线性表描述

 线性表是生活队列关系的总结

线性表的一些常用操作:

  将元素插入线性表

  将元素从线性表中删除

  获取目标位置处元素的值

  设置目标位置处元素的值

  获取线性表的长度

  清空线性表

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

技术分享图片

 

添加List抽象类如下:

 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) = 0;
17     virtual int length() const = 0;
18     virtual void clear() = 0;
19 };
20 
21 }
22 
23 
24 #endif // LIST_H

List是一个抽象类,是用来被继承的。

小结:

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

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

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

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

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

 

第十四课 线性表的本质和操作

原文:https://www.cnblogs.com/wanmeishenghuo/p/9501101.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!