数据结构讨论的是数据的逻辑结构
2023年信息技术基础知识考试题库500题(含答案)
2023年信息技术基础知识考试题库500题(含答案)
一、单选题
1 .我们在讨论某种数据结构时,主要讨论四个方面的问题,①数据的逻辑结构② 数据的存储结构③在数据的逻辑结构上定义的数据的基本操作;④基本操作算法的具体实现;这四个问题的讨论的先后顺序应该是怎样的()。
A、①②③④
B、①③②④
C、②①③④
D、②①④③
答案:A
2.菜单是WIND0WST的一种重要操作手段,要想执行下拉菜单中的某个操作,应
A、通过键盘输入菜单中的该操作命令项的文字(如:“打开”、“复制”)
B、用鼠标单击下拉菜单中的该操作命令项
C、选择菜单中的该操作命令项,然后按键盘上任意一键
D、在窗口内任意一个空白位置单击鼠标键
答案:B
3.网页的主体内容将写在()标签内部
A、
B、
C、
D、
答案:A
4.默认的HTTP (超级文本传输协议)端口是()0
A、21
B、23
C、80
D、8080
答案:C
5.()些应用程序组成了iPad±的生产力套装软件iWorko
A、W ord、Excel、PowerPoint
B、i Movie、iLife、iPhoto
C、P ages\ Keynotev Numbers
D、F aceTime、PhotoBooth、iPhot
答案:C
6.当个人计算机以拨号方式接入Internet网时,必须使用的设备是()
A、网卡
B、调制解调器(Modem)
C、电话机
D、浏览器软
答案:B
7.Word中对浮动式对象的文字环绕,以下说法中不正确的是()。
A、如果要将一个对象放在文字的底下作为页面的背景,可以选择“无环绕型”
B、如果在当前文档中加一“水印”效果,可以选择“穿越型”,并置“水印” 对象于文字的下方
数据结构综合复习题
∑∑∑====n 1i n 1j 3
n 1
k n 162)1)(n n(n 21)n(n 2161)1)(2n n(n 21 i 21i 2121)i(i j 1n 1i n
1i n 1i 2n 1i i 1j n 1i i 1j j 1k ++=++++==+=⎪⎭⎫ ⎝⎛+==∑∑
∑∑∑∑∑∑========第一章 综合练习
2.什么是数据结构? 有关数据结构的讨论涉及哪三个方面?
【解答】
数据结构是指数据以及相互之间的关系。记为:数据结构 = { D, R }。其中,D 是某一数据对象,R 是该对象中所有数据成员之间的关系的有限集合。
有关数据结构的讨论一般涉及以下三方面的内容:
① 数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ② 数据成员及其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;
③ 施加于该数据结构上的操作。
数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。例如搜索、插入、删除、更新、排序等。
5.设n 为正整数, 分析下列各程序段中加下划线的语句的程序步数。
(1) for (int i=1;i<=n ;i++)
for (int j=1;j<=n ;j++)
数据结构课程心得体会汇总5篇
数据结构课程心得体会汇总5篇
数据结构课程心得体会(精选篇1)
我们学习过数据的实用方法,但真正要用到数据结构这块,还是很困难的。
在学习了数据结构后,我对数据结构的一些基本理论有了初步认识,这些都是很深奥的,这些在以后的学习生活中都有很多的用处。
首先,我认识到数据结构的基本原理是一个逻辑的概念。数据结构是数据的基础,只有掌握了逻辑原理才能更有效的进行数据结构的设计。数据结构是一个逻辑思考问题,它包括数字的结构。
其次,数据结构是数据结构的原理。数字的结构是逻辑化的,它包括数字的逻辑,数字的逻辑,数字的逻辑。
再次,数据结构是数据结构的基本原理。数字的结构就是一个逻辑思维。数字在结构中占有相应的位置,它的逻辑就像一个数字,它有很多的规律。
在数据结构中,数字的结构是有规律的,它包括数据的逻辑,数字的逻辑。数字在结构中占有相应的位置,它的逻辑就像一个数字,它有很多的规律。
这样,我们对数据结构的设计就会有一种信心,这种信心是一种对数字的一种执着的追求。这种追求是一种不断追求新东西的态度。
数据结构是数据的一种重要形式。数据结构就是在数据结构中,用数据表示数据的数值,以及用数据来表示数据的数值。
通过学习我认识到我们学习数学知识的过程是一种学习,在学习知识的过程中我们要注意理论与实践的结合。只有理论与实践相结合,才能把知识的理论体系搞懂、理解,并且在实践的过程中不断总结经验教训,进行创新。
最后,我认识到数学知识的重要性。数学知识是用来解决实际问题的。我们学习数学知识的过程就是学习数学的过程,而数学知识对于我们来说是重要的。
数据的逻辑结构和数据的存储结构
数据的逻辑结构和数据的存储结构
1. 数据的逻辑结构
数据的逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储⽆关,是独⽴于计算机的。数据的逻辑结构分为线性结构和⾮线性结构,线性表是典型的线性结构;集合、树和图是典型的⾮线性结构。数据的逻辑结构分类见图1-1。
集合结构中的数据元素之间除了 “同属于⼀个集合”的关系外,别⽆其他关系。
线性结构结构中的数据元素之间只存在⼀对⼀的关系。
树形结构结构中的数据元素之间存在⼀对多的关系。
图状结构或⽹状结构结构中的数据元素之间存在多对多的关系。
图1-1 数据的逻辑结构分类图
2. 数据的存储结构
存储结构是指数据结构在计算机中的表⽰(⼜称映像),也称物理结构。它包括数据元素的表⽰和关系的表⽰。数据的存储结构是逻辑结构⽤计算机语⾔的实现,它依赖于计算机语⾔。数据的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。
1) 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元⾥,元素之间的关系由存储单元的邻接关系来体现。其优点是可以实现随机存取,每个元素占⽤最少的存储空间;缺点是只能使⽤相邻的⼀整块存储单元,因此可能产⽣较多的外部碎⽚。
2) 链接存储:不要求逻辑上相邻的元素在物理位置上也相邻,借助指⽰元素存储地址的指针表⽰元素之间的逻辑关系。其优点是不会出现碎⽚现象,充分利⽤所有存储单元;缺点是每个元素因存储指针⽽占⽤额外的存储空间,并且只能实现顺序存取。
3) 索引存储:在存储元素信息的同时,还建⽴附加的索引表。索引表中的每⼀项称为索引项,索引项的⼀般形式是:(关键字,地址)。其优点是检索速度快;缺点是增加了附加的索引表,会占⽤较多的存储空间。另外,在增加和删除数据时要修改索引表,因⽽会花费较多的时间。
奥鹏北理工《数据结构与算法》在线作业标准答案
北京理工大学
《数据结构与算法》在线作业
参考答案
北理工《数据结构与算法》在线作业
1. 下面四种内排序方法中,要求容量最大的是()。
【选项】:
A 插入排序
B 选择排序
C 快速排序
D 归并排序
【答案】:
2. 下列说法正确的是()
【选项】:
A 堆栈是在两端操作、先进后出的线性表
B 堆栈是在一端操作、先进后出的线性表
C 队列是在一端操作、先进先出的线性表
D 队列是在两端操作、后进先出的线性表
【答案】:
3. 以下关于线性表的说法不正确的是()。
填空题练习
二、填空题:
1、《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和______________。
2、数据结构算法中,通常用时间复杂度和__________________两种方法衡量其效率。
3、一个算法一该具有______,______,____,______和____这五种特性。
4、若频繁地对线性表进行插入与删除操作,该线性表应采用____________存储结构。
5、在非空线性表中除第一个元素外,集合中每个数据元素只有一个_______;除最后一个元素之外,集合中每个数据元素均只有一个_________。
6、线性表中的每个结点最多有________前驱和____________后继。
7、______链表从任何一个结点出发,都能访问到所有结点。
8、链式存储结构中的结点包含____________域,_______________域。
9、在双向链表中,每个结点含有两个指针域,一个指向______结点,另一个指向________结点。
10、某带头结点的单链表的头指针head,判定该单链表非空的条件______________。
11、在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_____结点。
12、已知指针p指向单链表中某个结点,则语句p->next=p->next->next的作用__删除p 的后继结点_。
13、已知在结点个数大于1的单链表中,指针p指向某个结点,则下列程序段结束时,指针q指向*p的_____________结点。
q=p;
while(q->next!=p)
数据结构资料
数据(Data):信息的载体,它能够被运算机识别、存储和加工处置。数据元素是数据大体单位。数据一样包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。数据元素之间的逻辑关系简称为数据结构,存储结构是数据元素及其关系在运算机存储器内的表示,称为数据的存储结构它分为线性结构和非线性结构。栈、队列、串等都是线性结构,非线性结构:数据逻辑结构中的另一大类,它的逻辑特点是一个结点可能有多个直接前趋和直接后继。数组、广义表、树和图等数据结构都是非线性结构。
数据项(Data Item):具有独立意义的最小数据单位,是对数据元素属性的描述。数据项也称域或字段。
数据结构(Data Structure):指的是数据之间的彼此关系,即数据的组织形式。
逻辑结构(Logical Structrue):数据元素及其关系在运算机存储器内的表示
树最适合用来表示元素之间具有分支层次关系的数据。
数据存储方式有:1.顺序存储方式 2.链接存储方式 3.索引存储方式 4.散列存储方式
算法的时刻复杂度不仅与问题的规模相关,还与输入实例中的初始状态有关。但在最坏的情形下,其时刻复杂度确实是只与求解问题的规模相关的。咱们在讨论时刻复杂度时,一样确实是以最坏情形下的时刻复杂度为准的时刻复杂度是由嵌套层数最多
的循环语句中最内层语句的频
度f(n)决定。
把线性表的结点按逻辑顺序依
次寄存在一组地址持续的存储
单元里用这种方式存储的线性
表这顺序表。
串是零个或多个字符组成的有
限序列,长度为零的串称为空串,
串中任意个持续字符组成的子
序列称为串的子串(模式),包括
数据结构(逻辑结构,物理结构,特点)
数据结构(逻辑结构,物理结构,特点)
⼀、数据的:指反映数据之间的逻辑关系的,其中的是指数据元素之间的前后件关系,⽽与他们在计算机中的存储位置⽆关。逻辑结构包括:
1. 集合
数据结构中的元素之间除了“同属⼀个集合” 的相互关系外,别⽆其他关系;
2.
数据结构中的元素存在⼀对⼀的相互关系;
3.
数据结构中的元素存在⼀对多的相互关系;
4.
数据结构中的元素存在多对多的相互关系。
⼆、数据的物理结构:指数据的在计算机存储空间的存放形式。
数据的物理结构是数据结构在计算机中的表⽰(⼜称映像),它包括数据元素的机内表⽰和关系的机内表⽰。由于具体实现的⽅法有顺序、链接、索引、散列等多种,所以,⼀种数据结构可表⽰成⼀种或多种存储结构。
数据元素的机内表⽰(映像⽅法):⽤⼆进制位(bit)的位串表⽰数据元素。通常称这种位串为节点(node)。当数据元素有若⼲个数据项组成时,位串中与个数据项对应的⼦位串称为数据域(data field)。因此,节点是数据元素的机内表⽰(或机内映像)。
关系的机内表⽰(映像⽅法):数据元素之间的关系的机内表⽰可以分为顺序映像和⾮顺序映像,常⽤两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表⽰数据元素之间的逻辑关系。⾮顺序映像借助指⽰元素存储位置的指针(pointer)来表⽰数据元素之间的逻辑关系。
数组
在程序设计中,为了处理⽅便,把具有相同类型的若⼲按有序的形式组织起来。这些按序排列的同类数据元素的集合称为。在中,数组属于构造数据类型。⼀个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组⼜可分为数值数组、字符数组、、结构数组等各种类别。
数据模型的3个组成要素
数据模型的3个组成要素
1. 数据模型的定义
数据模型是描述真实世界中各种实体、关系、属性等概念和它们
之间关系的一种抽象规约。它是抽象的、简化的和理论化的,是数据
的逻辑结构和特征的集合体现,并且确定了处理这些数据所需的过程。数据模型的主要目的是提供一个统一的概念框架。
2. 数据模型的三个组成要素
数据模型的三个组成要素包括数据结构、数据操作和数据约束。
下面我们分别来详细介绍一下。
2.1 数据结构
数据结构是数据模型中的一个非常重要的组成要素,它是指数据
的逻辑组织形式,包括实体、属性、关系等。实体就是现实中存在的
事物,例如人、物、事等,实体在数据模型中通常用矩形表示。属性
就是实体的特定特征,例如人的身高、体重、姓名等,属性在数据模
型中通常用椭圆形表示。关系就是实体和属性之间的联系和互动,例
如人和车之间存在拥有关系,关系在数据模型中通常用菱形表示。基
于数据结构的定义,我们可以通过各种关系建立出复杂的数据模型。2.2 数据操作
数据操作是数据模型中的另一个重要的组成要素。它是指各种操
作数据的方式和方法,包括插入、查询、修改和删除等。插入就是将
数据添加到数据库中,查询则是通过各种条件查询数据库中的数据,
修改就是在数据存在的情况下对其进行修改,删除自然就是从数据库
中删除数据。在实际应用中,这些数据操作通常被封装成各种API供
用户使用。
2.3 数据约束
数据约束是数据模型中的第三个重要组成要素。它是指对数据的
格式、范围和完整性进行约束。常见的数据约束包括主键约束、外键
约束、唯一约束、非空约束等。主键约束是指在一个表中只能有一个
数据结构的逻辑结构
数据结构的逻辑结构
数据结构是计算机科学中的重要概念,它指的是数据元素之间的关系和组织方式。逻辑结构是数据结构中的一种重要分类,它描述了数据元素之间的逻辑关系,而不涉及具体的存储方式和实现细节。本文将以数据结构的逻辑结构为标题,介绍几种常见的逻辑结构。
1. 线性结构
线性结构是最基本也是最常见的数据结构之一,它的特点是数据元素之间存在一对一的关系。线性结构有两种基本形式:线性表和线性链表。线性表是一种有序的数据元素序列,可以用顺序存储结构或链式存储结构来实现;线性链表是一种由节点组成的链式结构,节点中存储数据元素和指向下一个节点的指针。
2. 非线性结构
非线性结构是指数据元素之间存在一对多或多对多的关系。常见的非线性结构有树和图。树是一种由节点组成的层次结构,每个节点可以有零个或多个子节点;图是由节点和边组成的集合,节点表示数据元素,边表示节点之间的关系。
3. 集合结构
集合结构是指数据元素之间不存在任何关系,它们之间是相互独立的。集合结构常用于描述离散的事物,如数学中的集合。集合结构可以用数组、链表等方式来实现。
4. 文件结构
文件结构是指数据元素之间存在一对一或一对多的关系,数据元素可以按照某种逻辑顺序进行存储和访问。常见的文件结构有顺序文件、索引文件和散列文件。顺序文件是按照一定顺序存储的文件,可以进行顺序查找;索引文件是通过索引表来实现的,可以进行快速查找;散列文件是通过散列函数来计算存储位置的,可以实现快速的插入和查找。
5. 网状结构
网状结构是指数据元素之间存在多对多的关系,每个数据元素都可以与其他元素直接或间接地相连。网状结构常用于描述复杂的关系,如社交网络中的好友关系。
数据结构主要研究内容
数据结构主要研究内容
1.数据的各种逻辑结构和物理结构,以及他们之间的相应关系
2.并对每种结构定义相适应的各种运算
3.设计出相应的算法
4.分析算法的效率
数据结构第一章
常见的数据结构有
数组栈队列表串树图
基本术语
1.数据:所有能被计算机处理的符号的集合(信息)
2.数据元素:是数据这个集合中的一个个体。
3.数据对象:具有相同特性的数据元素的集合。
4.数据项:数据元素常常还可以分为若干个数据项,数据项是数据具有意义的最小单位
5.数据结构:是带有结构的数据元素的集合结构就是数据元素之间的关系描述数据元素之间的运算及运算规则数据元素和其相互关系称为数据结构
6.逻辑结构:指数据元素之间的结构关系
7.物理结构:指数据结构在机内的存放及表示方式
算法
1.算法概念:算法是一个有限的指令集,遵循指令流可以完成特定的功能
2.算法的基本特性:
有穷性:算法经有限步后结束
确定性:下一步必须是明确的
可行性:每一步是可执行的(正确性)
3.算法与程序的区别:算法是转化的过程,是把输入转换成输出,而程序使用某种程序设计语言对算法的具体实现
4.程序可以是无穷的,例如OS,算法是有穷的;
程序可以是错误的,算法必须是正确的;
程序是用程序设计语言描述,可以在机器上执行;算法还可以用框图,自然语言等方式描述
5.算法和程序都可以用程序语言设计
自考《数据结构》课程教学方式的探讨
C 言写 出伪 代码 。究其原 因主要有两 个 : 一个原因是 c 语 第
语言掌握的不是很扎实 , 第二个原 因就是学生普遍有畏难情
绪。
其存储结构和相应算法 , 使得 学生 通过本 课程 的学 习 , 既掌
③把教材 中的每个算 法用 c语言 实现一遍 。这个教学
收 稿 日期 :00~ 5— 7 2 1 O 2
作者简 介 : 郑巧仙 (9 8 17 一
) 女/ 浙江衢 州人 , , , 湖北大学数学与计算机科 学学院教 师。
数据结构课程是计 算机及 相关 专业 的一 门重要 的专业
基 础课程 , 算机专业 教学计划 中 的核 心课 程之 一 , 整 是计 在
自考 《 数据结构》 课程教学方式 的探讨
郑 巧 仙
( 湖北大学数学 与计算 机科学学 院, 湖北武汉 ,30 2 4 06 )
摘 要 : 本文根据数据 结构课程 的特色和 自考生的特殊情况 , 将教 学 目标按 照从从 易到难分成 了四个层
次, 并重 点介 绍了实现这 四个层次教学 目标 的详细 的教 学方式。 关键词 : 数据结构 ; 自考 ; 分层教学 ; 算法; 算法设计 中图分 类号 :7 6 9 G 2 . 文献 标识 码 : A 文章编号 :0 9- 44(O O O 0 9— 3 10 o4 2 l )5— 7 0
1 《数据结构》课程学习什么内容 数据结构是指数据以及相互之间的
1. 《数据结构》课程学习什么内容?
数据结构是指数据以及相互之间的关系。记为:数据结构= { D, R }。其中,D是某一数据对象,是数据元素的有限集合;R是该对象中所有数据元素之间的关系的有限集合。
有关数据结构的讨论一般涉及以下三方面的内容:
①数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构;
②数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;
③施加于该数据结构上的操作。
2. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构?
集合、线性结构、树形结构、图形或网状结构。
3. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?
(1)顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。
(3)索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。
(4)散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。
数据结构1-2章习题课答案
wk.baidu.com
练习题: 3. 设数组A[n]中有多个零元素,是写一函数,将A中 所有非零元素依次移动数组A的前端。 4. 设计一个算法,找单链表中值最大的结点。
23
3:设数组A[n]中有多个零元素,是写一函数,将A中 所有非零元素依次移动数组A的前端。 void compact(int A[],int n){ k=0; for(i=0; i<n; i++) { if (A[i]!=0) { if(i!=k) A[k]= A[i]; k++; } for(i=k; i<n; i++) A[i]=0; }
}
4
16. 一维数组逻辑结构是 对于二维数组有 和
,存储结构是 两种不同的存储方式.
.
对于一个二维数组A[m][n],若采用行优先顺序存储的
方式, 则任一数组元素A[i][j]相对于A[0][0]的地址为
.
5
补充题: 按增长率由小到大的顺序排列下列各函数: 2100,(3/2)n,(2/3)n,(4/3)n,nn,n2/3, n1/2, n!,n,log2n,n/log2n,log22n,log2(log2n), nlog2n,nlog2n
p=p->next; } return maxvalue; }
25
p=head->next; head->next=NULL;
数据结构期中试卷A
任何节约归根到底是时间的节约。——马克思数据结构期中试卷A一、判断题:(10分,每题1分) 1、线性表的逻辑顺序与物理顺序总是一致的。( ) 2、线性表中的每个结点最多只有一个前驱和一个后继。( ) 3、单链表从任何一个结点出发,都能访问到所有结点。 ( ) 4、单链表形式的队列,头指针F指向队列的第一个结点,尾指针R指向队列的最后一个结点。 ( ) 5、用一组地址连续的存储单元存放的元素一定构成线性表。( ) 6、算法一定要有输入和输出。( ) 7、若长度为n的线性表采用顺序存储结构,删除表的第i个元素之前需要移动表中n-i+1个元素。( ) 8、符号p->next出现在表达式中表示p所指的那个结点的内容。( ) 9、若某堆栈的输入序列为1,2,3,4,则4,3,1,2不可能是堆栈的输出序列之一。( ) 10、除插入和删除操作外,数组的主要操作还有存取、修改、检索和排序等。( )二、填空题:(10分,每空1分) 1、《数据结构》课程讨论的主要内容是数据的逻辑结构、存储结构和______________。 2、若频繁地对线性表进行插入与删除操作,该线性表应采用______________存储结构。 3、在双向链表中,每个结点含有两个指针域,一个指向_________结点,另一个指向________结点。 4、在初始为空的队列中插入元素A,B,C,D以后,紧接着作了两次删除操作,此时的队尾元素是___________。 5、某带头结点的单链表的头指针head,判定该单链表非空的条件______________。 6、已知指针p指向单链表中某个结点,则语句p->next=p->next->next的作用________。 7、______链表从任何一个结点出发,都能访问到所有结点。 8、广义表(A,(a,b),d,e,((i,j),k)),则广义表的长度为________,深度为_______。三、选择题:(30分,每题2分)(1)在栈中存取数据的原则是 。 A、先进先出 B、后进先出 C、先进后出 D、随意进出(2)已知广义表的表头为A,表尾为(B,C),则此广义表为________ A、(A,(B,C)) B、(A,B,C) C、(A,B,C) D、(( A,B,C))(3 )二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______ A、470 B、471 C、472 D、473(4)在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____。 A、 q一>next=p一>next;p一>next=q; B、 q一>next=p一>next;p一>next=q; C、
数据结构重点
第一章:绪论
1.1:数据结构课程的任务是:讨论数据的各种逻辑结构、在计算机中的存储结构以及各种操作的算法设计。
1。2:数据:是客观描述事物的数字、字符以及所有的能输入到计算机中并能被计算机接收的各种集合的统称。
数据元素:表示一个事物的一组数据称作是一个数据元素,是数据的基本单位。
数据项:是数据元素中有独立含义的、不可分割的最小标识单位。
数据结构概念包含三个方面:数据的逻辑结构、数据的存储结构的数据的操作。
1.3数据的逻辑结构指数据元素之间的逻辑关系,用一个数据元素的集合定义在此集合上的若干关系来表示,数据结构可以分为三种:线性结构、树结构和图。
1.4:数据元素及其关系在计算机中的存储表示称为数据的存储结构,也称为物理结构。
数据的存储结构基本形式有两种:顺序存储结构和链式存储结构。
2.1:算法:一个算法是一个有穷规则的集合,其规则确定一个解决某一特定类型问题的操作序列。算法规则需满足以下五个特性:
输入——算法有零个或多个输入数据。
输出-—算法有一个或多个输出数据,与输入数据有某种特定关系。
有穷性——算法必须在执行又穷步之后结束。
确定性—-算法的每个步骤必须含义明确,无二义性。
可行性—-算法的每步操作必须是基本的,它们的原则上都能够精确地进行,用笔和纸做有穷次就可以完成。
有穷性和可行性是算法最重要的两个特征。
2.2:算法与数据结构:算法建立数据结构之上,对数据结构的操作需用算法来描述。
算法设计依赖数据的逻辑结构,算法实现依赖数据结构的存储结构。
2。3:算法的设计应满足五个目标:
正确性:算法应确切的满足应用问题的需求,这是算法设计的基本目标.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构讨论的是数据的逻辑结wenku.baidu.com、存储方式 以及相关操作的实现等问题,为学习后续专业课程 打下基础。本章讲述数据结构的基本概念及相关术 语,介绍数据结构、数据类型和抽象数据类型之间 的联系,介绍了算法的特点及算法的时间与空间复 杂性。
1.1数据结构
1.1.1数据结构
随着计算机软、硬件的发展,计算机的应用范 围在不断扩大,计算机所处理的数据的数量也在不 断扩大,计算机所处理的数据已不再是单纯的数值 数据,而更多的是非数值数据。
需要处理的数据并不是杂乱无章的,它们一定 有内在的联系,只有弄清楚它们之间的本质的联系, 才能使用计算机对大量的数据进行有效的处理。
某电信公司的市话用户信息表格如下图所示:
序号
用户名
电话号码
用户住址 街道名 门牌号
00001
万方林 3800235 北京西路 1659
0这00里02序号、吴用金户平名、3电80话06号67 码等北项京称西路为基本2项09,9 它 是有独000立03意义的王最小冬标识单570位01,23而用瑶户湖住大址道称为组19合87 项, 组合项是由一个或多个基本项或组合项组成,是有独立 意义的000标04识单位王,每三一行称570为05一67个结瑶点湖,大每道一个组20合08 项 称为一000个05字段。江 凡 8800129 学府大道 5035
使用计算机处理用户信息表中的数据时,必须弄清楚 下面3个问题:
1 数据的逻辑结构
这些数据之间有什么样的内在联系?
除最前和最后两个结点之外,表中所有其它的结点 都有且仅有一个和它相邻位于它之前的一个结点,也有 且仅有一个和它相邻位于它之后的一个结点,这些就是 用户信息表的逻辑结构。
2 数据的存储结构
数据的存储结构主要有4种。
数据的存储结构主要有4种。
1 顺序存储
顺序存储通常用于存储具有线性结构的数据。将 逻辑上相邻的结点存储在连续存储区域M的相邻的存 储单元中,使得逻辑相邻的结点一定是物理位置相邻。
对于一个数据结构B=(K,R)
其中K={k1,k2,k3,k4,k5,k6,k7,k8,k9}
将用户信息表中的所有结点存入计算机时,就必须 考虑存储结构,使用C语言进行设计时,常见的方式是 用一个结构数组来存储整个用户信息表,每一个数组元 素是一个结构,它对应于用户信息表中的一个结点。数 据在计算机的存储方式称为存储结构。
3 数据的运算集合
数据处理必涉及到相关的运算,在上述用户信息表 中,可以有删除一个用户、增加一个用户和查找某个用 户等操作。应该明确指明这些操作的含义。比如删除操 作,是删除序号为5的用户还是删除用户名为王三的用 户是应该明确定义的,如果需要可以定义两个不同的删 除操作,为一批数据定义的所有运算(或称操作)构成 一个运算(操作)集合。
R={r} r={<k1,k2>,<k2,k3>,<k3,k4>,<k4,k5>,<k5,k6>,<k6,k7>,<k7, k8>,<k8,k9>} 它的顺序存储方式如图所示
2 链式存储
链式存储方式是给每个结点附加一个指针段,一 个结点的指针所指的是该结点的后继的存储地址,因 为一个结点可能有多个后继,所以指针段可以是一个 指针,也可以是一个多个指针。
4 散列存储
散列存储的思想是构造一个从集合K到存储区域M 的一个函数h,该函数的定义域为K,值域为M,K中的 每个结点ki在计算机中的存储地址由h(ki)确定。
1.1.4数据的运算集合
对于一批数据,数据的运算是定义在数据的逻 辑结构之上的,而运算的具体实现就依赖于数据的存 储结构。
例,数据的逻辑结构B=(K,R)
其中 K={k1,k2,k3,k4,k5}
R={r}
R={< k1,k2>,<k2,k3>,<k3,k4>,<k4,k5>} 这是一个线性结构,它的链式存储如图所示。
3 索引存储
在线性结构中,设开始结点的索引号为1,其它结 点的索引号等于其前继结点的索引号加1,则每一个结 点都有唯一的索引号,索引号就是根据结点的索引号 确定该结点的存储地址。
对待处理的数据,只有分析清楚上面3个方面的问 题,才能进行有效的处理!
数据结构就是指按一定的逻辑结构组成的一批数据, 使用某种存储结构将这批数据存储于计算机中,并在 这些数据上定义了一个运算集合。
1.1.2数据的逻辑结构
例数如据,的有逻5辑个结人构,是分数别据记和为数a,b据,c之,d 间,e所,其存中在a是的b逻的辑父关亲, b系是,c的它父可亲以,用c是一d个的二父元亲组,d是e的父亲,如果只讨论他们 之间所存在的父子关系B=,(则K可,以R)用下面的二元组形式化 地予以表达。 来表示,其中K是数据、即结点的有限集合;R是集 合K上关系的有限集合B=,(这K里,的R)关系是从集合K到集 合其K的中关:系K,={这a,b里,c,一d,e般} 只涉及到一个关系的逻辑结构。
1.1.3数据的存储结构
数据的逻辑结构是独立于计算机的,它与数据在 计算机中的存储无关,要对数据进行处理,就必须将 数据存储在计算机中。如果将数据在计算机中无规律 地存储,那么在处理时是非常糟的,是没有用的。试 想一下,如果一本英汉字典中的单词是随意编排的, 这本字典谁会用!
对于一个数据结构B=(K,R),必须建立从结点 集合到计算机某个存储区域M的一个映象,这个映象 要直接或间接地表达结点之间的关系R。数据在计算 机中的存储方式称为数据的存储结构。
R={r}
r={<a, b>,<b,c>, <c, d>,<d,e>}
逻辑结构的图形表示方式,对K中的每个结点ki用一 个方框表示,而结点之间的关系用带箭头的线段表示, 这5人之间的逻辑结构用图形的方式表达如下图 所示。
若ki∈K,kj∈R,<ki ,kj > ∈r,则称ki是kj的相对 于关系r的前驱结点,kj是ki的相对于关系r的后继结点, 因为一般只讨论具有一种关系的逻辑结构,即R={r}, 所以简称ki是kj前驱,kj是ki的后继。如果某个结点没有 前驱结点,称之为开始结点;如果某个结点没有后继 结点,称之为终端结点;既不是开始结点也不是终端 结点的结点称为内部结点。