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

线性表(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

时间: 2024-11-06 07:24:39

第十四课 线性表的本质和操作的相关文章

第5课 - 线性表的本质

第5课 - 线性表的本质 数据结构是为了解决生活中的实际问题而存在的,那生活中与线性表相对应的例子有什么呢? 幼儿园中就有一个例子,在老师安排小朋友活动时,会将小朋友组织成下面的站队形式,这个就是线性表. 1. 线性表的定义 (1)线性表是0个或多个数据元素的集合 (2)线性表中的数据元素之间是有顺序的,这一点非常重要 (3)线性表中的数据元素的个数是有限的,这和实际生活相符(在数学中,线性表的个数可以是无穷的) (4)线性表中的数据元素的类型必须相同 2. 线性表的性质 (1)a0 为线性表的

数据-第5课-线性表的本质

第5课-线性表的本质 线性表的定义 (1) 线性表(List)是零个或多个数据元素的集合. (2) 线性表中的数据元素之间是有顺序的. (3) 线性表中的数据元素个数是有限的. (4) 线性表中的数据元素的类型必须相同. 定义: 线性表是具有相同类型的 n( ≥ 0)个数据元素的有限序列 (a1, a2,...,an)  ai表示项,n表示长度. 线性表的性质 (1) a0为线性表的第一个元素,只有一个后继. (2) an为线性表的最后一个元素,只有一个前驱. (3) 除a0和an外的其它元素a

第十四课、线性表的本质和操作-----------------狄泰软件学院

一.线性表(List)的表现形式 1.零个或者多个数据元素组成的集合 2.数据元素在位置上是有序排列的 3.数据元素的个数是有限的 4.数据元素的类型必须相同 二.线性表(List)的抽象定义 1.线性表是具有相同类型的n(>=0)个数据元素的有限序列 {a0,a1,a2,....an-1} ai是表项(数据元素),n是表长度 三.线性表(List)的性质 1.a0为线性表的第一个元素,只有一个后继 2.an-1为线性表的最后一个元素,只有一个前驱 3.除a0和an-1外的其它元素ai,既有前驱

线性表的本质和操作

线性表(List)的表现形式——零个或多个数据元素组成的集合——数据元素在位置上是有序排列的——数据元素的个数是有限的——数据元素的类型必须相同 线性表的一些常用操作——将元素插入线性表——将元素从线性表中删除——获取目标位置处元素的值——设置目标位置处元素的值——获取线性表的长度——清空线性表 线性表在程序中表现为一种特殊的数据类型 template <typename T> class List : public Object { public: virtual bool insert(i

线性表的本质、操作及顺序存储结构(六)

我们说到线性表,可能好多人还不太理解.那么我们举个例子来说,在幼儿园中,老师们总会让小朋友以同样的派对秩序出行,这个例子的本质就是线性表. 那么线性表(List)的表现形式是怎样的呢?符合以下几个特征:1.零个或多个数据元素组成的集合:2.数据元素在位置上是有序排列的:3.数据元素的个数是有限的:4.数据元素的类型必须是相同的.那么线性表的抽象定义是怎么定义的呢?线性表是具有相同类型的 n( ≥ 0 ) 个数据元素的有限序列.如下 下来我们来看看 List 的本质:1.a0 为线性表的第一个元素

NeHe OpenGL教程 第十四课:图形字体

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十四课:图形字体 图形字体: 在一课我们将教你绘制3D的图形字体,它们可像一般的3D模型一样被变换. 这节课继续上一节课课的内容.在第13课我们学习了如何使用位图字体,这节课,我们将学习如何使用轮廓字体. 创建轮廓字体的方法类似于

NeHe OpenGL教程 第四十四课:3D光晕

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十四课:3D光晕 3D 光晕 当镜头对准太阳的时候就会出现这种效果,模拟它非常的简单,一点数学和纹理贴图就够了.好好看看吧. 大家好,欢迎来到新的一课,在这一课中我们将扩展glCamera类,来实现镜头光晕的效果.在日常生活中,

线性表的本质

有时候就会有一种感觉,尽管学习了C和C++,看到程序都差不多看得懂,但是真正让自己去开发一个软件或者独立性的去写一些代码的时候还是很困难,我们都知道程序的灵魂是算法,一个程序是算法和数据结构的相结合,在接下来来的寒假时光中,笔者将会学习数据结构的一些基础知识,并且加上个人的一些理解,和大家一起分享. 下面我将从4个方面介绍线性表的基本和常用知识.线性表的本质,线性表的相关操作,线性表的顺序存储结构,线性表链式存储结构. 一个线性表是是n个数据元素的有限序列,有以下定义: 线性表是零个或者多个数据

第六课 线性表的相关操作

线性表的讨论 线性表的操作 线性表的一些常用操作 创建线性表 销毁线性表 清空线性表 将元素插入线性表 将元素从线性表中删除 获取线性表中某个位置的元素 获取线性表的长度 先把方法声明出来,下一节课开始实现: #ifndef _EG_2_1_H_ #define _EG_2_1_H_ typedef void List; typedef void ListNode; /* 该方法用于创建并且返回一个空的线性表 */ List* List_Create(); /* 该方法用于销毁一个线性表list