《数据结构(C语言版)》电子教案第1章

合集下载

《数据结构》教案(精华版)

《数据结构》教案(精华版)

《数据结构》教案(精华版)《数据结构》教案(精华版)前言数据结构是计算机学科中的重要基础课程,它涉及到数据的存储、组织和管理。

本教案旨在帮助学生掌握数据结构的基本概念、算法和应用,提高其解决实际问题的能力。

第一章:引言在本章中,我们将介绍数据结构的基本概念和重要性。

学生将了解到数据结构在计算机科学中的作用,以及为什么学习数据结构对于他们的职业发展至关重要。

1.1 数据结构的定义数据结构是一种组织和存储数据的方式,它涉及到数据元素之间的关系,以及对这些关系的操作。

1.2 数据结构的分类数据结构可以分为线性结构和非线性结构。

线性结构中的数据元素之间存在一个明确的顺序关系,而非线性结构中的数据元素之间没有固定的顺序关系。

1.3 数据结构的应用数据结构在计算机科学中有广泛的应用。

例如,在数据库管理系统中,数据结构被用来组织和管理大量的数据;在图形图像处理中,数据结构被用来存储和操作图像数据。

第二章:线性结构本章将介绍线性结构,包括线性表、栈和队列。

学生将学习这些线性结构的定义、实现和应用。

2.1 线性表线性表是一种最简单的数据结构,它由一组数据元素组成,这些元素按照线性的顺序存储。

2.2 栈栈是一种特殊的线性表,它具有“先进后出”的特点。

学生将学习栈的定义、实现和常见应用。

2.3 队列队列是另一种特殊的线性表,它具有“先进先出”的特点。

学生将学习队列的定义、实现和应用。

第三章:树结构本章将介绍树结构,包括二叉树、搜索树和平衡树。

学生将学习这些树结构的定义、实现和应用。

3.1 二叉树二叉树是一种常见的树结构,它的每个节点最多有两个子节点。

学生将学习二叉树的定义、实现和遍历算法。

3.2 搜索树搜索树是一种特殊的二叉树,它的每个节点都符合一定的大小关系。

学生将学习搜索树的定义、实现和查找算法。

3.3 平衡树平衡树是一种自平衡的二叉树,它可以保持树的高度平衡。

学生将学习平衡树的定义、实现和平衡算法。

第四章:图结构本章将介绍图结构,包括无向图和有向图。

数据结构与算法教学设计教案

数据结构与算法教学设计教案

数据结构与算法(C语言篇)教学设计课程名称:数据结构与算法(C语言篇)_____授课年级:___________________________ 授课学期:___________________________ 教师姓名:___________________________2020年03月01日第一课时(数据结构的概念、逻辑结构与物理结构)了解数据结构与算法1.讲述数据结构与算法内容,引出本课时主题。

数据结构是计算机专业的一门基础课,其主要研究程序设计中的操作对象及它们之间的关系。

算法指的是解决问题的策略,只要有符合一定规范的输入,在有限时间内就能获得所要求的输出。

虽然数据结构与算法属于不同的研究课题,但优秀的程序设计离不开二者的相辅相成。

因此,本章将主要介绍数据结构与算法的基本概念,包括数据结构的基本术语、数据的结构分类以及算法的各种特性。

2.明确学习目标(1)能够了解数据(2)能够了解数据元素与数据项(3)能够了解数据对象(4)能够掌握数据结构(5)能够掌握逻辑结构(6)能够掌握物理结构知识讲解➢数据数据(Data)在计算机科学中是指计算机操作的对象,是输入到计算机中被计算机程序处理的符号集合。

例如,一个读取终端输入的程序,其操作的对象可能是字符串,那么字符串就是计算机程序处理的数据。

数据不仅可以是整型、字符型等数值类型,也可以是音频、图片、视频等非数值类型。

综上所述,数据的本质就是符号,且这些符号都满足以下特定的需求。

(1)可以输入到计算机中。

(2)可以被计算机程序处理。

其中数值类型的数据可以被执行数值计算,而非数值类型的数据可以被执行非数值的处理,例如,音频、图片、视频等资源在计算中都是被编码转换为字符数据来处理的。

➢数据元素与数据项数据元素(Data Element)是组成数据的基本单位。

数据的基本单位是一种抽象的概念,并没有具体的数值化标准。

例如,可以将公司看作一个数据元素,也可以将员工视为一个数据元素。

《数据结构(C语言版)》教案

《数据结构(C语言版)》教案

《数据结构(C语言版)》教案《数据结构(C语言版)》教案2020 至2020 学年第一学期教案课程名称数据结构使用教材《数据结构(C语言版)》教学时数56课程性质必修任课班级(人数)信管(53人)信息系(部)信管教研室任课教师山东科技大学泰山科技学院课时授课计划2020-2020学年第二学期第1周授课日期2月20 日星期1 月日星期月日星期月日星期月日星期班级信管10-1 基本课题第1章绪论 1.1-1.2 教学目的与要求:1. 了解数据结构的基本概念2. 理解常用术语教学重点:数据结构的基本概念和术语教学难点:数据元素之间的四种结构关系作业及参考书:1、什么是数据结构?《数据结构算法实现及解析》/高一凡编著教具:多媒体板书课堂类型:讲授教学过程:自我介绍——开课——引入——展开——举例——小结——作业一、自我介绍和课程介绍约8min 课时:64 二、引入约2min 由问题的提出引入三、讲课进程设计1.1 什么是数据结构 1.1.1、数据结构与其它的关系约15min 数据结构+算法=程序程序设计: 为计算机处理问题编制一组指令集算法: 处理问题的策略数据结构: 问题的数学模型 1.1.2、当今计算机应用的特点:约25min l) 所处理的数据量大且具有一定的关系;2) 对其操作不再是单纯的数值计算,而更多地是需要对其进行组织、管理和检索。

举例说明:1) 学生成绩表2)井安棋对弈3)交通管理结论计算机的操作对象的关系更加复杂,操作形式不再是单纯的数值计算,而更多地是对这些具有一定关系的数据进行组织管理;我们将此称为非数值性处理。

要使计算机能够更有效地进行这些非数值性处理,就必须弄清楚这些操作对象的特点,在计算机中的表示方式以及各个操作的具体实现手段。

1.2 基本概念和术语1.1.1、数据与数据结构约20min 数据:是对客观事物的符号表示。

所有能被输入到计算机中,且能被计算机处理的符号的集合。

是计算机操作的对象的总称。

全套电子课件:数据结构(C语言版)(第三版)

全套电子课件:数据结构(C语言版)(第三版)

例 计算f=1!+2!+3!+…+n!, 用C语言描述。
void factorsum(n) int n;{int i,j;int f,w; f=0; for (i=1,i〈=n;i++) {w=1; for (j=1,j〈=i;j++) w=w*j; f=f+w;} return;
1.2 数据结构的发展简史及其 在计算机科学中所处的地位
• 发展史: 1、 “数据结构”作为一门独立的课程在国外是从1968年才开始设
立的。 2、 1968年美国唐·欧·克努特教授开创了数据结构的最初体系,他所
著的《计算机程序设计技巧》第一卷《基本算法》是第一本较 系统地阐述数据的逻辑结构和存储结构及其操作的著作。
⑵ while语句
while (〈条件表达式〉) { 循环体语句; }
• while循环首先计算条件表达式的值,若条件表达式的值非零, 则执行循环体语句,然后再次计算条件表达式,重复执行,直 到条件表达式的值为假时退出循环,执行该循环之后的语句。
⑶ do-while语句
do { 循环体语句 } while(〈条件表达式〉)
• 地位: 1、“数据结构”在计算机科学中是一门综合性的专业基础课。
2、数据结构是介于数学、计算机硬件和计算机软件三者之间 的一门核心课程。
3、数据结构这一门课的内容不仅是一般程序设计(特别是非 数值性程序设计)的基础,而且是设计和实
1.3 什么是数据结构
• 解决非数值问题的算法叫做非数值算法,数据处理方面的算法都 属于非数值算法。例如各种排序算法、查找算法、插入算法、删 除算法、遍历算法等。
• 数值算法和非数值算法并没有严格的区别。

数据结构(c语言版)黄国瑜 叶乃菁 课件ch01

数据结构(c语言版)黄国瑜 叶乃菁 课件ch01

– 有效率的步驟
• 演算法中的每一個步驟必須是基本的指令,也 就是說是一個可行的運算。
黃國瑜、葉乃菁著
資料結構
10
1-2
演算法與虛擬碼
演算法撰寫方式
– 條列式的步驟
1. 輸入資料和欲搜尋值。 2. 搜尋資料中第一項。 3. 如果資料全都搜尋過且未能搜尋到欲搜尋值。 表示未能搜尋到資料。 4. 如果欲搜尋值等於此項資料。表示搜尋到資 料。 5. 如果欲搜尋值不等於此項資料。搜尋下一項 資料,回到第三步。
黃國瑜、葉乃菁著 資料結構 11
1-2
演算法與虛擬碼
開始
演算法撰寫方式
– 流程圖
輸入搜尋資料
輸入欲搜尋值
搜尋第一筆資料


資料是否全 都搜尋過?

欲搜尋值是 否第於此項 資料?

表示未搜尋到資料
表示搜尋到資料。
黃國瑜、葉乃菁著
資料結構
12
1-2
演算法與虛擬碼
演算法撰寫方式
– 虛擬碼
Procedure Sequential_Search(Data,KeyValue) 設I為1; while ( ) { if ( 欲搜尋值等於Data[I] ) printf(“搜尋到資料。”); else if ( I > 資料個數 ) // 資料全搜尋完 printf(“未能搜尋到資料。”); I++; }
黃國瑜、葉乃菁著 資料結構 24
1-5
時間複雜度的分析
時間複雜度的分析
– 討論:循序搜尋 – 最佳狀況
• 當資料在第一筆時,第一次就找到。
– 最差狀況
• 當資料不存在或資料在最後一筆時,需要N次。

《数据结构》教案

《数据结构》教案

《数据结构》教案一、教学目标1. 理解数据结构的基本概念和重要性。

2. 掌握常用的数据结构,如数组、链表、栈、队列、树、图等。

3. 学会分析数据结构的时间和空间复杂度。

4. 能够运用数据结构解决实际问题,提高编程能力和软件开发效率。

二、教学内容1. 数据结构的基本概念:数据的定义、数据类型的分类、数据结构的概念及其重要性。

2. 数组和链表:数组的概念、数组的操作、链表的概念、单链表和双向链表的实现。

3. 栈和队列:栈的定义及操作、队列的定义及操作、栈和队列的应用场景。

4. 树:树的概念、二叉树、遍历算法、哈夫曼编码。

5. 图:图的概念、图的表示、图的遍历算法、最短路径算法。

三、教学方法1. 采用讲授法讲解数据结构的基本概念和原理。

2. 通过案例分析和编程实践,让学生掌握数据结构的实现和应用。

3. 利用图形和动画演示数据结构的操作和算法,提高学生的理解力。

4. 组织讨论和小组合作,培养学生的团队协作能力和解决问题的能力。

四、教学环境1. 教室环境:宽敞、明亮、安静,适合进行教学活动。

2. 计算机设备:每人一台电脑,安装有相关编程软件和教学辅助工具。

3. 网络环境:教室具备稳定的网络连接,便于查找资料和在线交流。

五、教学评价1. 平时成绩:课堂参与度、作业完成情况、小组讨论表现等。

2. 考试成绩:期末考试,包括选择题、填空题、简答题和编程题。

3. 实践能力:课后编程实践,完成相关数据结构的应用项目。

4. 综合素质:团队协作、问题解决、创新能力等。

六、教学资源1. 教材:《数据结构(C语言版)》等相关教材。

2. 课件:PowerPoint或其他演示软件制作的课件。

3. 编程实践项目:安排课后编程实践项目,如链表、栈、队列、树、图等应用。

4. 在线资源:提供相关的在线教程、视频、博客等,供学生自主学习。

5. 编程工具:Visual Studio、Eclipse等集成开发环境。

七、教学进程1. 第一周:数据结构基本概念、数据的定义和类型。

数据结构(C语言版) 第1章 绪论

数据结构(C语言版) 第1章 绪论
数据结构
理论课教材: 数据结构(C语言版) 严蔚敏 吴伟民 编著
第一章 绪论
1.0 1.1 1.2 1.3 1.4 学习数据结构的主要意义和要求 数据结构讨论的范畴 基本概念 抽象数据类型的表示和实现 算法和算法的度量
学习数据结构的主要意义和要求
意义:

数据结构和算法是计算机学科的两大支柱 数据结构是程序设计的基础 程序=算法+数据结构
存储结构分为: 顺序存储结构——借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系 链式存储结构——借助指示元素存储地址的指针表示数据 元素间的逻辑关系 数据的逻辑结构与存储结构密切相关 逻辑结构
线性表
物理结构
顺序存储结构


链式存储结构
复合存储结构
h
h
元素1 1400
1345 元素2
链式存储
数据结构的形式定义为: 数据结构是一个二元组 Data_Structures = (D, S) 其中: D 是数据元素的有限集, S 是 D上关系的有限集。
数据元素的映象方法: 例用二进制位(bit)的位串表示数据元素
(321)10 = (501)8 = (101000001)2 A = (101)8 = (001000001)2
算法设计的要求
2. 可读性 算法主要是为了人的阅读与交流,其次才是为计算机执行,因此算法 应该易于人的理解;另一方面,晦涩难读的程序易于隐藏较多错误而难以 调试。 3.健壮性 当输入的数据非法时,算法应当恰当地作出反映或进行相应处理,而
1536
元素3
1346
元素4

存储地址 1345 1346
存储内容 元素1 元素4
指针 1400 ∧

数据结构(C语言版)——第1章绪论

数据结构(C语言版)——第1章绪论

正确性 可读性 健壮性 高时间效率 高空间效率
算法分析
• • 算法执行所耗费的时间,与该算法中所 有语句的执行总次数成正比 。 语句频度:算法中的所有语句的执行的 总次数 ,记为:T(n) 。 时间复杂度:把T(n)表示成同数量级函 数的形式:T(n)=O(g(n)),则O(g(n))称 为算法的时间复杂度 。描述了当n充分 大的时候算法的语句频度的数量级。
数据结构(C语言版)
第1章 绪论
本章主要知识点
• 数据结构的常用术语及基本概念
• 集合、线性结构、树型结构、图型结构 的逻辑特点 • 抽象数据类型 • 算法、算法描述及算法分析
常用术语和基本概念
• 数据:人们利用文字符号、数字符号以及其他规 定的符号对客观现实世界的事物及其活动所做的 抽象描述。 • 数据元素:表示一个事物的一组数据 ,是数据的 基本单位 。 • 数据项:数据的最小单位。 • 数据对象:性质相同的数据元素的集合。 • 数据类型:一组性质相同的值的集合以及定义在 这个集合上的一组操作的总称。

• 常见的时间复杂度有O(1), O(log n) , O(n),O(n2),O(n3), O(2n),分别称为常量 阶、对数阶、线性阶、平方阶、立方阶 和指数阶。 • O(1)<O(log n)<O(n)<O(n2)<O(n3)<O(2n)
• •
空间复杂度:在算法执行过程中需要
的辅助空间数量,记为:S(n) = O(f(n)) 。
常用术语和基本概念
• 数据基本结构: • 集合结构:数据元素之间无任何关系。 • 线性结构:元素之间存在一对一的线线 关系。 • 树形结构:数据元素之间存在着一对多 的关系。 • 图形结构:数据元素之间存在多对多的 关系。

(严蔚敏)数据结构电子教案第一章

(严蔚敏)数据结构电子教案第一章
在计算机中的实现,它包括数据元素的表示和关系的表示。
形式化描述: D要存入机器中,建立一从D的数据元素到存储空间M单元
映象S ,D→M,即对于每一个d, d∈D,都有唯一的z∈M使S (D)=Z, 同时这个映象必须明显或隐含地体现关系R。
第19页,共80页。
存储结构
逻辑结构与存储结构的关系为: 存储结构是逻辑关系的映象与元素本身映象,是数据结构
问题规模N—对不同的问题其含义不同:
对矩阵是阶数;
对多项式运算是多项式项数; 对图是顶点个数; 对集合运算是集合中元素个数。
第38页,共80页。
有关数量关系计算
数量关系评价体现在时间——算法在机器中所耗费时间。 数量关系评价体现在空间——算法在机器中所占存储量。 关于算法执行时间 语句频度 算法的时间复杂度 数据结构中常用的时间复杂度频率计数 最坏时间复杂度 算法的空间复杂度
第22页,共80页。
1.3 算法
算法(Algorithm)定义 算法的特性 算法设计的要求
第23页,共80页。
算法(Algorithm)定义
定义: Algorithm is a finite set of rules which
gives a sequence of operation for solving a specific type of problem.
第1章 绪 论
[教学目标] 学习与数据结构有关的基本概念和基本方法。
[重点、难点] 数据结构(逻辑结构、存储结构),抽象 数据类(定 义、实现),算法(定义、设计要求、描述工具、复杂 度分析)。
[教学方法] 提出问题、分析问题、解决问题
第1页,共80页。
第1章 绪 论
1.1 数据结构的基本概念(定义)

《数据结构实用教程(C语言版)》第1章概论.

《数据结构实用教程(C语言版)》第1章概论.

1.2.1 算法的概念
(3)可行性:算法中描述的操作都可以通过 执行有限次基本操作来实现。 (4)输入:一个算法有零个或多个输入。 (5)输出:一个算法必有一个或多个输出。 3.算法的评价 要设计一个好的算法通常需要考虑以下几方面 的要求: (1)正确性:要求算法能够正确地执行预先 规定的功能,并达到所期望的性能要求。 (2)可读性:为了便于理解、测试和修改算 法,算法应该具有良好的可读性。 返回到本节目录
返回到本节目录
1.1.3 数据的存储结构
顺序存储结构的主要特点: 可实现对各数据元素的随机访问。这是因为 只要知道存储的首地址以及每个数据元素所 占的存储单元,就可以计算出各数据元素的 存储地址。 不利于修改,在对数据元素进行插入、删除 运算时可能要移动一系列的数据元素。
返回到本节目录
1.1.3 数据的存储结构
返回到本节目录
1.2.1 算法的概念
4.算法的描述 为了表示一个算法,可以用多种不同的方法, 常用的有自然语言、传统流程图、结构化流 程图、N-S流程图等表示。本书采用C的描 述语言实现对各种数据结构及算法的操作描 述,算法是以函数形式描述,描述如下:
类型标识符 函数名(形式参数表) /*算法说明*/ { 语句序列 }
返回到本节目录
1.1.2 数据的逻辑结构
(【例1.3】制定教学计划 在制定教学计划时,需要考虑各门课程的开设 顺序。有些课程需要先导先修课程,有些课 程则不需要,而有些课程又是其他课程的先 导先修课程。比如,计算机专业课程的开设 情况如表1-2所示。
返回到本节目录
1.1.2 数据的逻辑结构
教学计划的关系图如图1-3所示。
返回到本节目录
1.1.2 数据的逻辑结构

《数据结构(C语言版)》教案 第1章 绪论(电子版)

《数据结构(C语言版)》教案  第1章  绪论(电子版)

中等职业学校教材数据结构(C语言版)电子教学资料朱若愚张秋璞等编著Publishing House of Electronics Industry北京•BEIJING前言为了配合《数据结构(C语言版)》课程的教学,体现教材的编写特色,更好地为读者服务,编写了此教学资料。

教学资料内容有三个部分:第一部分是教学指南,包括了课程性质与任务、课程内容和要求、教学建议、教学时间分配。

第二部分是电子教案,采用PowerPoint课件形式。

教师可以根据不同的教学要求按需选取和重新组合。

第三部分是习题答案,给出了每道习题的详细解答过程。

限于编著者水平,教学资料中有错误或不妥之处,请读者给予批评指正。

编者2003年8月《数据结构(C语言版)》教学指南一、课程的性质与任务数据结构作为C语言的后继课程,是程序设计的重要基础。

计算机程序的主要任务是处理数据,而大量的数据在计算机中怎样存储就成为一个重要而基本的问题,什么样的存储结构节省存储空间?什么样的存储结构有利于提高处理效率?哪类问题适合于用哪类存储结构?某种存储结构适合于哪种算法?此算法的计算复杂性如何?此存储结构占用多少内存?...这一系列的问题都属于这门课研究的范围。

这里所说的存储结构包括内存中的物理存储结构和体现数据之间逻辑关系的逻辑结构。

而这里所说的算法则是解决某个具体问题的处理过程(多以函数形式来体现),研究算法将使我们思路更开阔、技巧更灵活,将大大有利于我们程序设计水平的提高。

二、教学提要、课程内容、教学要求第1章绪论本章教学提要教学重点:数据结构的基本概念和术语类C语言的各种句型及算法描述的规范教学难点:数据结构的基本概念和术语本章教学内容数据结构是研究数据元素(data element)之间抽象化的相应关系和这种关系在计算机中的存储表示(即所谓数据的逻辑结构和物理结构),并对这种结构定义相应的运算,设计出相应的算法,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
1.1 什么是数据结构
数据结构是一门研究非数值计算的程序设计问题中计算机的操 作对象以及它们之间的关系和操作的学科。数据结构主要有三个方
面的内容:
数据的逻辑结构、数据的存储结构和对数据的算法。 逻辑结构:反映数据之间的逻辑关系,是对数据之间关系的描 述,主要有集合、线性表、树、图等四种结构。 物理结构:反映数据在计算机内部的存储安排,是数据结构在
2012-9-12 11
例如,整型、字符型、浮点型、双精度型等数据类型,分别是 一组相同结构的值以及在这些值上允许进行操作的总称。
5.抽象数据类型(Abstruct Data Type,简称ADT)
ADT是指一个数学模型以及定义在该模型上的一组的操作。可以 看作是数据的逻辑结构及其在逻辑结构上定义的操作。 抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算 机内部如何表示和实现无关。
假如一个教学计划中包含许多课程。在课程之间,有些必须
按规定的先后次序排课,如:学C6课程必须先学C3课,学C3课程
必须先学C1课。这些课程之间存在先修和后续的关系。 在这种结构中,表示课程的数据之间呈现多对多的非线性关
系,称这类数学模型为图形结构。
2012-9-12 8
图结构还有:多岔路口交通灯的控制和管理、煤气管道的铺 设造价等。 通过以上几例可以认为:数据结构就是研究数据的逻辑结构 和物理结构以及它们之间相互关系,并对这种结构定义相应的运 算,而且确保经过这些运算后所得到的新结构仍然是原来的结构 类型。
2012-9-12
12
1.1.3 数据结构(Data Structure)
数据结构是研究数据元素(Data Element)之间抽象化的相互 关系(逻辑结构)和这种关系在计算机中的存储表示(物理结构), 并对这种结构定义相适应的运算,设计出相应的算法。 数据结构主要指逻辑结构和物理结构。
1. 逻辑结构:
(也称为双亲)。称这种数学模型为树型数据结构。
2012-9-12 7
【例1-3】教学计划编排问题
课程编号 C1 C2 C3 C4 C5 C6 C7 C8 C9 课程名称 计算机导论 数据结构 汇编语言 C 程序设计 计算机图形学 接口技术 数据库原理 编译原理 操作系统 先修课程 无 C1,C4 C1 C1 C2,C3,C4 C3 C2,C9 C4 C2 C8 C7 C1 C1 C2 C4 C9 C3 C5 C6
可以简单完成的,都可以通过已经实现的基本操作运算的有限次来
实现。
注意:算法和程序是有区别的,即程序未必能满足动态有穷。在
本书中只讨论满足动态有穷的程序,因此“算法”和“程序” 是通
用的。
2012-9-12 23
1.2.2 算法描述 一个算法可以用自然语言、数字语言或流程图等来描述,
也可以用计算机高级程序语言来描述,如Pascal语言、C语言
21世纪高等院校规划教材
数据结构(C语言版)
2012-9-12
1
本书介绍了各种常用的数据结构。共有10章
第1章: 绪论 第2章: 线性表 第3章: 栈和队列 第4章: 串 第6章: 树和二叉树 第7章: 图 第8章: 排序 第9章: 查找
第5章: 数组
或伪代码等,本书选用C语言作为描述算法的工具。 1.用自然语言描述算法 用日常的自然语言来描述算法(可以是英文,也可以是其 它文字语言)。
优点:简单,便于人们对算法的阅读。
缺点:不够严谨。
2012-9-12 24
2.用流程图描述算法
使用程序流程图,N-S图等描述算法。特点是描述过程简洁、 明了。目前在一些高级语言程序设计中仍然被采用。
构。
2012-9-12 17
(1)顺序存储结构是把逻辑上相邻的结点存储在物理上相邻 的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关 系来体现。 优点:占用较少的存储空间; 缺点:由于只能使用相邻的一整块存储单元,因此可能产生较
多的碎片现象。
顺序存储结构通常借助程序语言中的数组来描述。 顺序存储结构主要应用于线性的数据结构。
2012-9-12
9
1.1.2 基本概念和术语
1.数据(Data)
数据(Data):是对信息的一种符号表示。在计算机科学中是指所 有能输入到计算机中并被计算机程序处理的符号的总称。包括文字、 表格、图象等。 例如,一个图书管理程序所要处理的数据可能是一张表格。如表 1-1所示。
2.数据元素(Data Element)
数据之间的相互关系称为逻辑结构。通常分为 4 类基本结构: 集合 结构中的数据元素除了同属于一种类型外,别无其它关系。
线性结构 结构中的数据元素之间存在一对一的关系。
树型结构 结构中的数据元素之间存在一对多的关系。 图状结构或网状结构 结构中的数据元素之间存在多对多的关系。
2012-9-12 13
在表1-1所示的表格中,由7个结点 (数据元素)组成,每个数 据元素又包括6个数据项(字段)。各结点之间在逻辑上有一种线性
etc
math
ds
sw
zhao jiang shao
li
描述磁盘目录和文件结构时, 假设每个磁盘包括一个根目录 (root)和若干个一级子目录, 每个一级子目录中又包含若干个 二级子目录….
queue stack tree graph
这种关系很像自然界中的树, 所以称为目录树。如左图所示。
在这种结构中,目录和目录以及目录和文件之间呈现出一对多 的非线性关系。即根root有多个下属(也称为后代),每一后代又有 属于自己的后代;而任一个子目录或文件都只有一个唯一的上级
一般情况下,一个结点中含有若干个字段(也叫数据项)。字
段是构成数据的最小单位。
3.数据对象(Data Object)
数据对象(Data Object):是性质相同的数据元素的集合。是数 据的一个子集。
4.数据类型(Data Type)
数据结构(Data Structure):是相互之间存在一种或多种特定关 系的数据元素的集合。
数据运算定义在数据的逻辑结构上,即施加于数据的操作。 例如对一张表的记录进行查找、增加、删除、修改,这就是 对数据的运算。 4.数据结构三方面的关系 数据的逻辑结构、数据的存储结构及数据的运算三方面构成 一个数据结构的整体。 存储结构是对数据项的存储。同一逻辑结构可用不同存储结构 就对应不同的存储标识。 例如,线性表若采用顺序存储方式,称为顺序表;若采用链式
2012-9-12
16
2. 存储结构: 数据结构在计算机中的存储表示称为数据的存储结构。它 包括数据元素的表示和关系的表示。 表1-1所示的表格数据在计算机中可以有多种存储表示: 数据既可以存放在一块连续的内存单元中,通过元素在存
储器中的位置来表示它们之间的逻辑关系(顺序);
也可以随机分布在内存中的不同位置,通过指针元素表示数 据元素之间的逻辑关系(链式)。这两种不同的表示方法对应 有四种不同的存储结构(亦称方式): 顺序存储结构、链式存储结构、索引存储结构和散列存储结
计算机中的实现方法。
主要有顺序、链接、散列、索引等四种基本存储结构,并可以 根据需要组合成其它更复杂的结构。
2012-9-12
算法:数据进行处理的方法。
4
1.1.1 数据结构示例 【例1-1】图书目录表
由于表中每条记录(表示每一本书)的登录号各不相同,
所以可用登录号来唯一地标识每条记录(一本图书)。在计
书号
书名
作者
出版社
定价 22 17.3 29 25 22.8 23.3 20 …
6
ISBN 7-302-02368-9 / TP.1185 数据结构 ISBN 7-302-00860-4 / TP.312 C 程序设计 ISBN 7-5053-9279-4 / TP.311 数据结构 ISBN 7-5053-8168-7 / TP.4757 计算机系统原理 ISBN 7-5609-2351-8 / TP.316 操作系统原理 ISBN 7-304-01404-0 / TP.68
关系,它指出了7个结点在表中的排列顺序。
这张表的逻辑结构就是数据元素(或是结点、记录)之间的关系。 对于表中的任一个结点(记录),都只有一个前驱结点,也只有一
个后继结点,整个表只有一个开始结点和一个终端结点。
此表的逻辑结构是线性的。
2012-9-12
14
四类数据基本结构的示意图:
(a)集合结构
(b)线性结构
算机的数据管理中,能唯一地标识一条记录的数据项被称为
关键字。因为每本图书的登录排列位置有先后次序,所以在 表中会按登录号形成一种次序关系,即整个二维表就是图书
数据的一个线性序列。这种关系被称为线性结构。
2012-9-12
5
返回
表 1-1 图书目录表
登录号 1 2 3 4 5 6 7 …
2012-9-12
数据元素(Data Element):是数据的基本单位,在计算机程序
中通常作为一个整体进行考虑和处理。 一个数据元素可由若干个数据项组成。数据项是数据的不可分 割的最小单位。
2012-9-12 10
例如,在表1-1所示的图书目录表中,为了便于处理,把其中的
每一行(代表一本书)作为一个基本单位来考虑,故该数据由7个 结点构成。
存储方式,称为链表;若采用散列存储方式,可称为散列表。
2012-9-12 21
1.2 算法描述
1.2.1 算法(Algorithm) 1、算法:简单地说就是解决特定问题的方法。是对问题求 解过程的一种描述。 特定的问题可以是数值的,也可以是非数值的。 一个算法可以用自然语言、计算机程序设计语言或其它语言 (比如类C语言)来说明。
2012-9-12
18
(2) 链式存储结构将结点所占的存储单元分为两部分,一 部分存放结点本身的信息,另一部分存放结点的后继结点地址, 结点间的逻辑关系由附加的指针字段表示。 链式存储结构常借助于程序语言的指针类型描述。
相关文档
最新文档