线性结构在非线性结构中的应用
摘要:数据结构课程中数据的逻辑结构分为线性结构和非线性结构。
数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。
相对应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。
关键字:线性表,树,图
1.引言
数据元素相互之间的关系称为结构。
有四类基本结构:集合、线性结构、树形结构、图状结构(网状结构)。
树形结构和图形结构全称为非线性结构。
集合结构中的数据元素除了同属于一种类型外,别无其它关系。
线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
在图形结构中每个结点的前驱结点数和后续结点数可以任意多个。
2.数据结构分类
数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。
线性结构的顺序存储结构是一种随机存取的存储结构,线性表的链式存储结构是一种顺序存取的存储结构。
线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
逻辑结构与数据元素本
身的形式、内容、相对位置、所含结点个数都无关。
数据结构的形式定义为:数据结构是一个二元组:Data-Structure=(D,S) 其中:D是数据元素的有限集,S是D上关系的有限集。
数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
不同的数据结构其操作集不同,但下列操作必不可缺:1,结构的生成;2.结构的销毁;3,在结构中查找满足规定条件的数据元素;4,在结构中插入新的数据元素;5,删除结构中已经存在的数据元素;6,遍历。
线性结构是一种最简单而且最常用的数据结构,线性结构的实例,在我们的现实生活中经常遇见,例如排队买票的队列、图书卡片目录的编排等,而线性表则是一种点型的线性结构。
栈和队列也是两种十分重要的线性结构,它们的逻辑结构和前面介绍的线性表完全相同,只是对其操作运算有一定的限制,故又称它们为操作受限的线性表。
栈和队列结构在各种程序设计中被广泛应用。
树形结构是一类重要的非线性数据结构,树中结点之间具有明确的层次关系,并且结点之间有分支,它非常类似于真正的树。
树形结构在客观世界中大量存在,如行政组织机构和人类社会的家谱等都可用树形结构形象地表示。
在计算机应用领域中树结构也被广泛地应用。
例如在编译程序中,用树结构来表示源程序的语法结构;在数据库系统中,用树结构来组织信息;在计算机图形学中,用树结构来表示图象关系等。
图(Graph)是一种复杂的非线性结构。
在线性结构中,数据元素之间满足唯一的线性关系,每个数据元素(除第一个和最后一个外),只有一个直接前趋和一
个直接后继;在树形结构中数据元素之间有着明显的层次关系,并且每个元素只与上一层中一个元素(双亲结点)及下一层中多个元素(孩子结点)相关,而在图形结构中,结点之间的关系可以是任意的,图中任意两个元素之间都可能相关,因此,图比线性表和树形结构更为复杂。
而图结构在人工智能,工程,数学,物理,化学,计算机科学等领域中,有着广泛的应用。
3.应用
数据结构(Data Structure)是指互相之间存在着一种或多种关系的数据元素的集合。
在任何问题中,数据元素之间都不会是孤立的,在它们之间都存在着这样或那样的关系,这种数据元素之间的关系称为结构。
根据数据元素间关系的不同特性,通常有下列四类基本的结构:⑴集合结构。
该结构的数据元素间的关系是“属于同一个集合”。
⑵线性结构。
该结构的数据元素之间存在着一对一的关系。
⑶树型结构。
该结构的数据元素之间存在着一对多的关系。
⑷图形结构。
该结构的数据元素之间存在着多对多的关系,也称网状结构。
从上面所介绍的数据结构的概念中可以知道,一个数据结构有两个要素。
一个是数据元素的集合,另一个是关系的集合。
在形式上,数据结构通常可以采用一个二元组来表示。
数据结构的形式定义为:数据结构是一个二元组Data_Structure =(D,R)其中,D是数据元素的有限集,R是D上关系的有限集。
线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。
在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构。
在实际问题中线性表的例子是很多的,如学生情况信息表是一个线性表:表中数据元素的类型为学生类型; 一个字符串也是一个线性表:表中数据元素的类型为
字符型,等等。
线性表是最简单、最基本、也是最常用的一种线性结构。
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,通常记为:(a1,a2,…ai-1,ai,ai+1,…an) 其中n为表长,n=0 时称为空表。
它有两种存储方法:顺序存储和链式存储,它的主要基本操作是插入、删除和检索等。
传统文本(例如书籍中的文章和计算机的文本文件)都是线性结构,阅读是需要注意顺序阅读,而超文本则是一个非线性结构。
在制作文本时,可将写作素材按内部联系划分成不同关系的单元,然后用制作工具将其组成一个网型结构。
阅读时,不必按线性方式顺序往下读,而是有选择的阅读自己感兴趣的部分。
在超文本文件中,可以用一些单词,短语或图像作为连接点。
这些连接点通常同其他颜色显示或加下划线来区分,这些形式的文件就成为超文本文件。
通过非线性结构,可能实现页面任意跳转。
参考文献
[1]段恩泽,肖守柏,王晓斌 .数据结构(C/C#语言版)
[2] 百度文库
[3] 朱明方,吴及 .数据结构与算法。