您的位置:首页 > 其它

学习笔记(1)——基本概念&线性表

2015-11-29 12:33 633 查看
基本概念

数据元素:数据的基本单位,计算机程序中通常作为一个整体考虑。

数据项:一个数据元素可以由若干个数据项组成,数据项是数据的不可分割的最小单位。

数据对象:性质相同的数据元素的集合,是数据的一个子集,如整数(Int)。

数据结构:一种或多种特定关系的数据元素的集合:

(1)集合:集合内数据元素无关

(2)线性结构:1:1

(3)树形结构:1:N

(4)图状结构(网状结构):N:M

形式定义:二元数组:Data_Structure = (D,S)。D为数据元素的有限集,S为D上关系的有限集

”关系“表述的是数据元素之间的逻辑关系,又称为逻辑结构;数据结构在计算机中的表示为物理结构,又称存储结构

数据元素之间在计算机中有两种不同的表示方法:顺序映像和非顺序映像。由此得到的两种数据结构:顺序存储结构链式存储结构

数据类型(data type):是一个值的集合和定义在这个值集上的一组操作的总称。

抽象数据类型(ADT):指一个数学模型以及定义在该模型上的一组操作。

(1)原子类型:属该类型的变量的值不可分解。如位数为100的整数。

(2)固定聚合类型:属该类型的变量,其值由确定数目的成分,按某种结构组成。如复数。

(3)可变聚合类型:变量的值得成分数目不确定。如有序整数序列。

形式定义:三元数组:(D,S,P)。D为数据对象,S为D上关系的有限集,P是对D的基本操作集。

多形数据类型:是指其值的成分不确定的数据类型。

算法:求解步骤的一种描述。特性:有穷性;确定性;可行性;输入;输出。

算法设计要求:正确性;可读性;健壮性(容错);效率与低存储量需求(时间复杂度、空间复杂度)。

线性表

线性结构的特点:在数据元素的非空有限集中,存在唯一的一个被称为”第一个“的数据元素;存在唯一一个被称为”最后一个“的数据元素;除第一个元素外,集合中的每个数据元素均只有一个前驱;除最后一个元素外,集合中的每个元素均只有一个后继

线性表:n个元素的有限序列。

线性表的顺序表示:用一组地址连续的存储单元依次存储线性表的数据元素。

有点:可随机及存取。

缺点:插入数据元素或删除数据元素均要移动插入(删除)位置之后的数据元素,即保持存储地址连续。

线性表的链式表示:不要求逻辑上的相邻的数据元素在物理位置上也相邻。

线性链表:用一组任意的存储单元。每个数据元素除包含本身的信息以外,还要指示其后继的存储位置(指针->指向下一个数据元素的位置)。表中最后一个结点 的指针为”空“

可用C语言中的结构体表示。

typedef struct LNode {

ElemType data;

struct LNode *next;

}

其中ElemType表示数据类型;指针指向下一个结构体,而不是结构体中的data。

有时在单链表的第一个节点之前设一个结点,成为头结点,数据域中可以不存任何信息,也可存储整个线性表的长度等附加信息。

插入或删除数据时,仅仅改变插入(删除)位置前一个元素的指针域即可。

静态链表:与线性链表原理相同。只是静态链表以一维数组来代替指针的机制。以数组中的一个分量表示一个结点,用游标代替指针指示结点在数组中的相对位置。 数组的第零分量可以看做头结点。

循环链表:表中的最后一个结点的指针域指向头结点。

双向链表:存在两个指针域,一个指向直接后继,一个指向直接前驱。

一元多项式:

一元多项式可以用一个线性表来表示。表中元素为一元多项式按升序排列时的系数。

当系数中非零项较少时,可只记录非零项系数和对应指数,(p,e)其中p为系数,e为指数。

若只对多项式进行”求值“等不改变多项式系数和指数的运算,可采用顺序存储结构,否则需采用链式存储结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: