30

数 据 结 构

  • Upload
    cachet

  • View
    91

  • Download
    0

Embed Size (px)

DESCRIPTION

数 据 结 构. 关于课程. 学习导引 课程介绍 教学目的与要求 教学内容与安排 参考书目与学习网站 课程基础 学习方法提示与实验环境 考核形式与标准 课程知识体系 预习要求及思考题. 开始. 输入 R. 计算 S=∏R 2. 输出 S. 结束. 学习导引. 问题 1 : 编程实现计算半径为 10cm 的圆面积。. 分析: 已知圆半径为 10cm (用 R 表示),求圆面积(用 S 表示). S=∏R 2. 学习导引. - PowerPoint PPT Presentation

Citation preview

Page 1: 数  据  结  构

数 据 结 构

Page 2: 数  据  结  构

关于课程 学习导引 课程介绍 教学目的与要求 教学内容与安排 参考书目与学习网站 课程基础 学习方法提示与实验环境 考核形式与标准 课程知识体系 预习要求及思考题

Page 3: 数  据  结  构

学习导引

问题 1 :编程实现计算半径为 10cm 的圆面积。

S=∏R2

分析:分析:

已知圆半径为已知圆半径为10cm 10cm (用(用 RR 表表示),求圆面积示),求圆面积(用(用 SS 表示)表示)

输入输入 RR

计算计算 S=∏RS=∏R22

输出输出 SS

开始开始

结束结束

Page 4: 数  据  结  构

学习导引

问题 2 :编程解决纸牌游戏问题。编号为 1-52 张牌,正面向上,从第 2 张开始,以 2为基数,是 2 的倍数的牌翻一次,直到最后一张牌;然后,从第 3 张开始,以 3 为基数,是 3 的倍数的牌翻一次,直到最后一张牌;然后…从第 4 张开始,以 4 为基数,是 4 的倍数的牌翻一次, 直到最后一张牌; ... 再依次 5 的倍数的牌翻一次, 6的, 7 的 直到 以 52 为基数的 翻过,输出:这时正面向上的牌有哪些?

Page 5: 数  据  结  构

学习导引 分析:1 、操作对象为编号 1—52 张牌 ;2 、这 52 张牌之间具有一个有序的次序关

系,即它们之间的逻辑结构为线性结构 ;3 、数据对象进行的操作是赋值运算 ;

Page 6: 数  据  结  构

学习导引计算机解决问题的一般步骤: 1 )首先要从具体问题抽象出一个适当的数学模型; 2 )然后设计一个解此数学模型的算法; 3 )最后编出程序、进行测试、调整直至得到最终解

答。

寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。对于非数值计算问题来说,寻求其数学模型就是要设计出合适的数据结构。

程序 = 算法 + 数据结构

Page 7: 数  据  结  构

课程介绍—课程间关系 计算机系列课程间关系

计算机应用基础

程序设计与算法语言

数据结构

操作系统

数据库理论

Page 8: 数  据  结  构

课程介绍– 重要性 学习《数据结构》的重要性

算法和数据结构是计算机科学的两大支柱数据结构是程序设计的基础

计算机科学早期定义为:研究算法的科学 近期定义为:研究数据的科学程序 = 算法 + 数据结构

数据结构是设计 OS、DBMS 等系统程序和各种应用程序的重要基础

《数据结构》是计算机专业的一门综合性专业基础课

Page 9: 数  据  结  构

课程介绍—主要内容 《数据结构》的主要内容

下面通过一系列的问题分析来介绍。

Page 10: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

问题 1 :猴子选大王 一堆猴子都有编号,编号是

1 , 2 , 3 ...m , 这群猴子( m 个)按照 1--m 的顺序围坐一圈,从第 1 开始数,每数到第n 个( n<m ),该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 编程输出该猴子大王的编号。1 2 3

4m

Page 11: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

分析:1 、操作对象为 1--m 这 m 个整型数据 ;2 、这 m 个数据之间具有一个有序的次序关

系,即它们之间的逻辑结构为线性结构 ;3 、数据对象进行的操作是删除运算 ;

1 2 34

m

Page 12: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

4 、数据对象在计算机内的存储结构采用循环链表 。

1 2 3 …… m顺序存储

链式存储 1 2 3 m… ^

Page 13: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

问题 2 :计算机和人对奕问题 设计一个“井”字棋的游戏,使人可以

和计算机对奕。

Page 14: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

分析:分析:11 、计算机操作的对象是对奕过程中可能出现的棋、计算机操作的对象是对奕过程中可能出现的棋盘状态盘状态————称为称为格局格局;;

22 、格局之间的关系是由比赛规则决定的,其逻辑、格局之间的关系是由比赛规则决定的,其逻辑结构为结构为树形结构树形结构;;

Page 15: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

分析:3 、“树根”是对奕开始之前的棋盘格局,而所有的“叶子”就是可能出现的结局,对奕的过程就是从树根沿树叉到某个叶子的过程。

4 、 确定数据对象在计算机内的存储结构。

Page 16: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

问题 3 :煤气管道铺设问题 现有 5 个居民点,分别设为 A 、 B 、C 、 D 、 E ,需要铺设煤气管道。请设计一种最佳方案,使得铺设管道所花费的资金最低。

C

A

B

D E

100

180

150

50

200

80

Page 17: 数  据  结  构

课程介绍 -- 《数据结构》的主要内容

分析:1 、数据对象即为 A—E 表示的 5 个居民点;2 、数据对象间的关系呈现为图状结构;3 、对数据对象的操作为求该图的最小生成树;

4 、确定数据对象在计算机内的存储结构。

Page 18: 数  据  结  构

课程介绍 《数据结构》的主要内容 操作对象间的逻辑结构和存储结构及其对

应关系 基于数据结构上所实现的算法及算法分析

数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象及其之间关系与操作的学科。

Page 19: 数  据  结  构

教学目的与要求 教学目的 数据结构课程目标是培养学生的数据抽象

能力。要求学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析技术。

Page 20: 数  据  结  构

教学目的与要求

教学要求 掌握各类基本数据结构类型和相应的存储

结构 提高阅读和编写算法的能力 能针对给定问题,选择相适应的数据结构,

并能设计和分析算法

Page 21: 数  据  结  构

教学内容与安排 课时: 72+36 教学内容:

章 内 容 学时 章 内 容 学时 1 绪 论 4 7 图 10

2 线性表 8 8 动态存储管理 略

3 栈和队列 8 9 查找 10

4 串 6 10 内部排序 8

5 数组和广义表 6 11 外部排序 略

6 树和二叉树 12 12 文件 略

Page 22: 数  据  结  构

参考书目及学习网站 参考书目[1]殷人昆等,《数据结构》( C++ 描

述),清华大学出版社[2]李春葆 , 《数据结构》( C 语言篇)

习题与解析,清华大学出版社[3]丁宝康等,《数据结构自学考试指导》,清华大学出版社

Page 23: 数  据  结  构

参考书目及学习网站 学习网站(教学资料及视频) http://www.ahut.edu.cn/jpkc/sjjg/kejian.htm (安徽工大) http://210.28.33.29/ds/index.aspx (淮海工学院) http://ds.ytu.edu.cn (烟台大学)http://hi.baidu.com/zgh914/blog/item/

b9fd570e14e63bcb7bcbe192.html (有关数据结构视频下载)

http://www.tudou.com/playlist/id/505182(电子科技大学视频 )

数据结构 + 精品课程

Page 24: 数  据  结  构

课程基础 C 语言程序设计——数据类型1 数据类型 : 分类 ? 基本类型有哪些 ?2 数组 : 怎样定义数组 ? 怎样合理访问数组元素 ? 下标的使用有何特点 ? 其存贮方式如何 ? 数组的首地址如何表示 ?

3 结构体类型如何定义 ? 如何定义变量 ?4 什么是指针 ? 如何定义一个指针变量 ?如何给一个指针变量赋值 ? 如何访问指针所指向的变量 ?

Page 25: 数  据  结  构

课程基础 C 语言程序设计——程序结构1 程序的三种基本结构是什么 ? 2 常用的控制语句 ?3 C程序由什么构成? 4 C是面向过程的还是面向对象的 ?

Page 26: 数  据  结  构

学习方法提示与实验环境 学习方法提示 理论实践结合,多做试题,多写算法并实现 软件环境 VC++ 6.0 实验要求 完成实验作业并填写实验报告 期中布置课程设计 实验安排 参见实验进度表

Page 27: 数  据  结  构

考核形式与标准 考核成绩为笔试成绩和实践成绩,分值比例为 7 : 3 ,其中实践成绩体现在作业、实验以及课程设计各方面。

课程设计要求利用本课程知识实现一个应用(可自由选题)设计,在学期结束的前两周提交。(详细要求见课程设计任务书)

Page 28: 数  据  结  构

课程知识体系

线性结构(线性表、栈、队列、串、数组) 逻辑结构 树形结构 非线性结构 图(网)状结构 数据 顺序存储 结构 物理(存储)结构 链式存储 数据运算 (插入、删除、修改、查找、排序)

运算的实现依赖于存储结构

Page 29: 数  据  结  构

预习要求及思考题 预习教材第一章绪论,并重点理解基本术

语和算法分析内容

思考题(分析下列各题,试给出它们的数据结构)

1 、设计一个我校各机构电话号码查询系统,当输入机构名称,则输出其电话号码。

Page 30: 数  据  结  构

预习要求及思考题

2 、下面给出了河南省几个城市之间的交通路线情况,可以利用代码表示不同的城市,要求当输入两个城市代码时输出该两个城市之间的交通情况,如果直接相通,输出他们之间的距离,否则输出不能直接到达。

1 到 2 300 1 到 4 200 4 到 5 280 3 到 5 150