300 likes | 439 Views
数 据 结 构. 关于课程. 学习导引 课程介绍 教学目的与要求 教学内容与安排 参考书目与学习网站 课程基础 学习方法提示与实验环境 考核形式与标准 课程知识体系 预习要求及思考题. 开始. 输入 R. 计算 S=∏R 2. 输出 S. 结束. 学习导引. 问题 1 : 编程实现计算半径为 10cm 的圆面积。. 分析: 已知圆半径为 10cm (用 R 表示),求圆面积(用 S 表示). S=∏R 2. 学习导引.
E N D
关于课程 • 学习导引 • 课程介绍 • 教学目的与要求 • 教学内容与安排 • 参考书目与学习网站 • 课程基础 • 学习方法提示与实验环境 • 考核形式与标准 • 课程知识体系 • 预习要求及思考题
开始 输入R 计算S=∏R2 输出S 结束 学习导引 问题1:编程实现计算半径为10cm的圆面积。 分析: 已知圆半径为10cm (用R表示),求圆面积(用S表示) S=∏R2
学习导引 问题2:编程解决纸牌游戏问题。编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?
学习导引 • 分析: 1、操作对象为编号1—52张牌 ; 2、这52张牌之间具有一个有序的次序关系,即它们之间的逻辑结构为线性结构 ; 3、数据对象进行的操作是赋值运算 ;
学习导引 计算机解决问题的一般步骤: 1)首先要从具体问题抽象出一个适当的数学模型; 2)然后设计一个解此数学模型的算法; 3)最后编出程序、进行测试、调整直至得到最终解答。 寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。对于非数值计算问题来说,寻求其数学模型就是要设计出合适的数据结构。 程序=算法+数据结构
课程介绍—课程间关系 • 计算机系列课程间关系 计算机应用基础 程序设计与算法语言 数据结构 操作系统 数据库理论
课程介绍–重要性 • 学习《数据结构》的重要性 • 算法和数据结构是计算机科学的两大支柱 计算机科学早期定义为:研究算法的科学 近期定义为:研究数据的科学 • 数据结构是程序设计的基础 • 《数据结构》是计算机专业的一门综合性专业基础课 程序=算法+数据结构 数据结构是设计OS、DBMS等系统程序 和各种应用程序的重要基础
课程介绍—主要内容 • 《数据结构》的主要内容 下面通过一系列的问题分析来介绍。
2 1 3 4 m 课程介绍 -- 《数据结构》的主要内容 问题1:猴子选大王 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1--m的顺序围坐一圈,从第1开始数,每数到第n个(n<m),该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 编程输出该猴子大王的编号。
2 1 3 4 m 课程介绍 -- 《数据结构》的主要内容 分析: 1、操作对象为1--m这m个整型数据 ; 2、这m个数据之间具有一个有序的次序关系,即它们之间的逻辑结构为线性结构 ; 3、数据对象进行的操作是删除运算 ;
1 2 3 m … ^ 课程介绍 -- 《数据结构》的主要内容 4、数据对象在计算机内的存储结构采用循环链表 。 顺序存储 链式存储
课程介绍 -- 《数据结构》的主要内容 问题2:计算机和人对奕问题 设计一个“井”字棋的游戏,使人可以和计算机对奕。
课程介绍 -- 《数据结构》的主要内容 分析: 1、计算机操作的对象是对奕过程中可能出现的棋盘状态——称为格局; 2、格局之间的关系是由比赛规则决定的,其逻辑结构为树形结构;
课程介绍 -- 《数据结构》的主要内容 分析: 3、“树根”是对奕开始之前的棋盘格局,而所有的“叶子”就是可能出现的结局,对奕的过程就是从树根沿树叉到某个叶子的过程。 4、 确定数据对象在计算机内的存储结构。
A • 100 • 150 • B • C • 180 • 50 • 80 • 200 • D • E 课程介绍 -- 《数据结构》的主要内容 问题3:煤气管道铺设问题 现有5个居民点,分别设为A、B、C、D、E,需要铺设煤气管道。请设计一种最佳方案,使得铺设管道所花费的资金最低。
课程介绍 -- 《数据结构》的主要内容 分析: 1、数据对象即为A—E表示的5个居民点; 2、数据对象间的关系呈现为图状结构; 3、对数据对象的操作为求该图的最小生成树; 4、确定数据对象在计算机内的存储结构。
课程介绍 • 《数据结构》的主要内容 • 操作对象间的逻辑结构和存储结构及其对应关系 • 基于数据结构上所实现的算法及算法分析 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象及其之间关系与操作的学科。
教学目的与要求 • 教学目的 数据结构课程目标是培养学生的数据抽象能力。要求学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析技术。
教学目的与要求 • 教学要求 • 掌握各类基本数据结构类型和相应的存储结构 • 提高阅读和编写算法的能力 • 能针对给定问题,选择相适应的数据结构,并能设计和分析算法
教学内容与安排 • 课时:72+36 • 教学内容:
参考书目及学习网站 • 参考书目 [1]殷人昆等,《数据结构》(C++描述),清华大学出版社 [2]李春葆, 《数据结构》( C语言篇)习题与解析,清华大学出版社 [3]丁宝康等,《数据结构自学考试指导》,清华大学出版社
参考书目及学习网站 • 学习网站(教学资料及视频) 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(电子科技大学视频) 数据结构+精品课程
课程基础 • C语言程序设计——数据类型 1数据类型: 分类? 基本类型有哪些? 2 数组: 怎样定义数组?怎样合理访问数组元素?下标的使用有何特点?其存贮方式如何?数组的首地址如何表示? 3 结构体类型如何定义?如何定义变量? 4 什么是指针?如何定义一个指针变量?如何给一个指针变量赋值?如何访问指针所指向的变量?
课程基础 • C语言程序设计——程序结构 1程序的三种基本结构是什么? 2 常用的控制语句? 3 C程序由什么构成? 4 C是面向过程的还是面向对象的?
学习方法提示与实验环境 • 学习方法提示 理论实践结合,多做试题,多写算法并实现 • 软件环境 VC++ 6.0 • 实验要求 完成实验作业并填写实验报告 期中布置课程设计 • 实验安排 参见实验进度表
考核形式与标准 • 考核成绩为笔试成绩和实践成绩,分值比例为7:3,其中实践成绩体现在作业、实验以及课程设计各方面。 • 课程设计要求利用本课程知识实现一个应用(可自由选题)设计,在学期结束的前两周提交。(详细要求见课程设计任务书)
课程知识体系 线性结构(线性表、栈、队列、串、数组) 逻辑结构 树形结构 非线性结构 图(网)状结构 数据 顺序存储 结构 物理(存储)结构 链式存储 数据运算 (插入、删除、修改、查找、排序) 运算的实现依赖于存储结构
预习要求及思考题 • 预习教材第一章绪论,并重点理解基本术语和算法分析内容 • 思考题(分析下列各题,试给出它们的数据结构) 1、设计一个我校各机构电话号码查询系统,当输入机构名称,则输出其电话号码。
预习要求及思考题 2、下面给出了河南省几个城市之间的交通路线情况,可以利用代码表示不同的城市,要求当输入两个城市代码时输出该两个城市之间的交通情况,如果直接相通,输出他们之间的距离,否则输出不能直接到达。 1到2 300 1到4 200 4到5 280 3到5 150