- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教材;作业及考核;课件;C语言 数据结构 软件工程;前期课程;第1章 绪论 ;第一章 绪论;《数据结构》是一门什么课程;数值问题:;非数值问题:;例2,计算机和人对奕问题。;例3,地图的着色问题。;; 1. 数据(Data) ; 2. 数据元素(Data Element)
数据元素是组成数据的基本单位, 是数据集合的个体,在计算机中通常作为一个整体进行考虑和处理。 ;例如 有一个学生表如下所示。这个表中的数据元素是学生记录,每个数据元素由四个数据项(即学号、姓名、性别和班号)组成。; 3. 数据结构(Data Structure)
数据结构是指相互之间存在一种或多种特定关系的数据元素集合, ;D = { ki | 1≤i≤n, n≥0}
ki表示集合D中的第i个结点或数据元素
n为D中结点的个数
若n=0, 则D是一个空集, 表示D无结构可言, 有时也可以认为它具有任意的结构;S={rj| 1≤j≤m, m≥0}
rj 表示集合S中的第j个二元关系(简称关系)
m为S中关系的个数
若m=0, 则S是一个空集, 表明集合D中的元结点间不存在任何关系, 彼此是独立的; D上的一个关系r是序偶的集合, 对于r中的任一序偶x,y(x,y∈D),我们称序偶的第一结点为第二结点的直接前驱结点(通常简称前驱结点),称第二结点为第一结点的直接后继结点(通常简称后继结点)。如在x,y的序偶中,x为y的前驱结点,而y为x的后继结点。
若某个结点没有前驱,则称该结点为开始结点;若某个结点没有后继,则称该结点为终端结点;除此之外的节点称为内部节点。
“尖括号”表示有向关系,“圆括号”表示无向关系。; 例如,用二元组表示学生表,学生表中共有7个结点,依次用k1~k7表示,则对应的二元组表示为
Data_Structure=(D,S)
其中:
D={k1, k2, k3, k4, k5, k6, k7}
S= {k1,k2, k2,k3, k3,k4,
k4,k5, k5,k6, k6,k7};逻辑结构图:可以将数据结构用图形形象地表示出来,图形中的每个结点对应着一个数据元素,两结点之间的连线对应着关系中的一个序偶。
上述“学生表”数据结构用下图的图形表示。;例1,内部关系,复数Complex = ( C,R );例3、设数据的结构描述如下:
Tree = (D, R)
D = {1,2,3,4,5,6}
R = {1,2, 1,3, 3,4, 3,5, 4,6}
画出其逻辑结构图?
;1.2 数据结构的内容;按照逻辑关系的不同特性分类:
集合:(同属于一个集合)
线性结构:(一对一)
非线性结构:
树型结构:(一对多)
图形结构:(多对多);(1)线性结构
所谓线性结构,该结构中的结点之间存在一对一的关系。
其特点是:开始结点和终端结点都是惟一的,除了开始结点和终端结点以外,其余结点都有且仅有一个前驱结点,有且仅有一个后继结点。
顺序表就是典型的线性结构。;(2)非线性结构
所谓非线性结构,该结构中的结点之间存在一对多或多对多的关系。它又可以细分为树形结构和图形结构两类。; 所谓树形结构,该结构中的结点之间存在一对多的关系。其特点是每个结点最多只有一个前驱,但可以有多个后继,可以有多个终端结点。非线性结构树形结构简称为树。
;UNIX文件系统的系统结构图; 所谓图形结构,该结构中的结点之间存在多对多的关系。其特点是每个结点的前驱和后继的个数都可以是任意的。因此,可能没有开始结点和终端结点,也可能有多个开始结点、多个终端结点。图形结构简称为图。;2. 存储结构(物理结构)
逻辑结构在计算机中的存储映象,是逻 辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。;例如 用顺序存储法和链式存储法表示下面的学生表。;用顺序存储法存放学生表的结构体定义为:
struct Stud {
int no; /*学号*/
char name[8]; /*姓名*/
char sex[2]; /*性别*/
char class[4]; /*班号*/
} Studs[7]={
{1,“张斌”,“男”,“9901”},
…,
{5,王萍,女,9901}
};; 结构体数组Studs各元素在内存中按顺序存放,即第i(1≤i≤6)个学生对应的元素Studs[i]存放在第i+
文档评论(0)