数据结构 第二章 线性表
2.1 线性表的概念和运算
2.1.1 线性表的概念
线性表是 n (n≥0) 个类型相同的数据元素组成的有限序列。其中数据元素的个数n为线性表的长度,当n=0时称为空表。
对于非空的线性表,有且仅有一个开始结点和一个终端结点。
开始结点没有直接前趋,有且仅有一个直接后继;终端结点没有直接后继,有且仅有一个直接前趋;其余任何结点有且仅有一个直接前趋和一个直接后继。
2.1.2 线性表的特点
(1)同一性:线性表由同类数据元素组成,每一个ai必须属于同一数据对象。
(2)有穷性:线性表由有限个数据元素组成,表长度就是表中数据元素的个数。
(3)有序性:线性表中相邻数据元素之间存在着序偶关系 <ai,ai+1>< a_i, a_{i+1} ><ai,ai+1> 。
2.1.3 线性表的计算
(1) 置空表 SETNULL(L) :将线性表L置为空表。
(2) 求长度 LENGTH(L) :返回是线性表L中结点的个数。
(3) 取结点 GET(L, i ) :当1 ≤ i ≤ LENGTH(L)时,返回线性表L中的第 i 个结点,否则返回NUL ...
数据结构 第一章 概论
1.1 数据结构的定义和分类
1.1.1 数据结构的定义
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。
数据结构是带有结构的数据元素的集合,数据元素之间的相互关系,即数据的组织形式。数据的组织方法与效率密切相关,采用不同数据的组织方法其处理效率也不同,对问题找出合适的数据组织方法十分重要。
1.1.2 数据结构包括的内容
(1)逻辑结构:数据元素之间的逻辑关系。
(2)存储结构:数据元素及其关系在计算机存储器内的表示。
(3)操作:数据的运算(检索、排序、插入、删除、修改)。
1.2 为什么学习数据结构
1.2.1 学习数据结构的作用
(1)计算机内的数值运算依靠方程式,而非数值运算(如表、树、图等)则要依靠数据结构。
(2)同样的数据对象,用不同的数据结构来表示,运算效率可能有明显的差异。
(3)程序设计的实质是对实际问题选择一个好的数据结构,加之设计一个好的算法。而好的算法在很大程度上取决于描述实际问题的数据结构。
1.2.2 电话号码查询问题
(1)要写出好的查找算法,取决于这张表的结构及存储方式。
(2)电话号码表的结 ...