学习笔记(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为指数。
若只对多项式进行”求值“等不改变多项式系数和指数的运算,可采用顺序存储结构,否则需采用链式存储结构。
数据元素:数据的基本单位,计算机程序中通常作为一个整体考虑。
数据项:一个数据元素可以由若干个数据项组成,数据项是数据的不可分割的最小单位。
数据对象:性质相同的数据元素的集合,是数据的一个子集,如整数(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为指数。
若只对多项式进行”求值“等不改变多项式系数和指数的运算,可采用顺序存储结构,否则需采用链式存储结构。
相关文章推荐
- nodejs net模块实现socket
- 分解质因数
- 基础知识
- (二)swift TabbedApplication 内增加普通视图
- POJ - 3109 Inner Vertices
- Java进阶之路
- Android官方文档翻译 七 2.Adding the Action Bar
- 239. Sliding Window Maximum
- 安卓学习--二级列表BaseExpandableListAdapter
- 防止集群多节点存储访问方法
- POJ 2309 BST 【lowbit()过】
- 2015浙江高考满分作文汇总(9篇)
- 读取文本文件,打印到屏幕
- Java- Hibernate 多对一关系映射
- acm2028
- Sql多条件查询,子查询,in及分页查询
- 小米手机4,小米4 延时摄影视频
- git使用总结
- 2015年工作中遇到的问题121-130
- 2015年工作中遇到的问题121-130