数据结构 东北大学软件学院数据结构课程建设小组.  通过本课程的学习掌握常用数据结构的逻辑结构特 征、存储结构及相关算法及实现的原理。  学会从问题入手,分析研究计算机加工的数据结构 的特性,以便为应用所涉及的数据设计适当的逻辑 结构、存储结构及其相应的操作算法,并初步掌握 时间和空间分析技术。

Slides:



Advertisements
Similar presentations
南通大学江海书画社.
Advertisements

13-1 人工智慧 13-2 雲端運算 13-3 感測網路與物聯網 13-4 生物資訊 13-5 計算機萬能嗎?
看不見的聲音 唐代女性文學.
第四章 科學革命.
眼屈光学 第三章 临床视觉光学.
数据结构 杨鹏宇 QQ: 版权所有,转载或翻印必究
我的未來在哪裡?.
第四节 1.了解现代汉语各类短语的特点及作用 2.掌握层次分析法的三个原则
第四章 工业地域的形成与发展 第一节 工业的区位选择.
中國文化大學 國際暨兩岸事務處 處長 李孔智博士
孩子是 神賜給你在地上的產業                聖經 孩子是你一生中最重要的投資, 值得你栽培他!教育他!        曾志朗(前台灣教育部長)
經費結報認證制度 種子人員講習會 主辦:汪憶芳 協辦:陳蓮萍 鄭曉雲 江一帆 日期:2012/09/04(二) 時間:09:00~12:15
北魏孝文帝的漢化措施 第二節.
「跨越困境,珍惜生命」 講座及訓練 香港撒瑪利亞防止自殺會 自殺危機處理中心主任 熊廣泓、何永雄 2007年11月30日.
歡迎同心來參加 歡慶耶穌復活主日禮拜 請由前往後就坐 將手機關閉或設定震動 坐定後安靜默禱預備心 以心靈和誠實敬拜獨一神 領受主的話語
消防知识培训.
数据结构(C语言版) Data Structure
勞動權益 教師:黃益中.
西元208年的赤壁之戰,是曹操、孫權和劉備在長江沿岸進行的一場會戰,對於三國鼎立局面的形成具有決定性影響。
中国医科大学附属第四医院眼科 中国医科大学眼科医院
职团客户促销活动 2016年9月.
摄影测量系统中基于SIFT算法 的柱面全景图像拼接实现
数据结构 Data Structures Prof. Qing WANG 王庆.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
103學年度員林高中 五分鐘說書比賽.
第20讲 农业生产和区位选择 [考纲要求] 掌握农业的主要区位因素极其影响; 学习农业区位选择的方法
FUN心玩地理,有效看世界 地理科有效教學心得分享 桃園縣立經國國中 高翊峰.
有多少人還知道… 衛國軍魂 抗日戰爭中22次大會戰
第三章 社会 通过本章的学习,使大家了解社会的概念、认识社会的基本特征,掌握马克思主义看待社会的基本观点,了解社会结构、社会运行以及社会形态的内涵,内容或类型,把握社会学考察社会的基本视角。
产品功能 办理流程 客户服务 走高速排队缴费! 通行费还不便宜! 去办理ETC要花400元买电子标签! 谁能帮我解决这些问题?
数据结构与算法 数据结构与算法实验
军队院校和国防生 报考指南 (第 一 讲).
Chap4 Tree.
ERP基礎觀念及導入方法:Ch6 管理維護系統
全球工程師共同的語言 MathWorks 台灣總代理鈦思科技 指導老師 : 郭艷光教授 報告者 : 吳育驊
慈濟大學資源教室 特殊學生的關懷與協助
第3章 Linux系统的基本操作 3.1 X Window图形化用户界面 3.2 GNOME的桌面环境 3.3 窗口和菜单操作
Data Structure(資料結構) 授課老師: 蕭志明 助理教授 Ext:6779
第 七 章 樹狀結構 課程名稱:資料結構 授課老師:________ 2019/1/1.
创建三维模型(二) 1. 创建标准基本体 课堂练习——创建凉亭模型 课堂练习——创建茶几模型 2. 创建扩展基本体.
樹狀結構 Tree Structure chapter 7 德明科技大學資訊科技系.
直线相关.
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
如何有效率的學習Linux 培養組合能力 多用程式, 少寫程式 從錯誤訊息中學習 養成略讀 “各種文件” 加強英文基本閱讀能力 勤作筆記
第二課 問題解決練功房 2-4 解決方案的評估與選擇.
期末報告-- [ridge regression]
微生物的生命現象 2—4 微生物與人類的關係.
第1章 初识3DS MAX 的神奇功能 本章应知 了解3DS MAX 6的工作界面、菜单栏、主工具栏、辅助工具栏、命令面板、工作区、动画播放区、视图工具的基本功能。 本章应会 1. 使用文件菜单能打开、新建、重做、保存3DS MAX文件 2. 会使用命令面板命令在视图中建立三维立体模型.
第8章 資料排序 資料結構設計與C++程式應用
第十三章   存貨管理 2.
数据结构 Data Structures Prof. Qing WANG 王庆.
计算机问题求解 – 论题 算法方法 2016年11月28日.
结束 放映 1.1 数制及编码 数制及其转换 编码 返回 2019/5/1.
資料結構使用Java 第9章 樹(Tree).
得人如得魚 馬太4:18-22、路加5:1-11.
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
要我為你做甚麼? 可10:36,51 (Mark 10:36,51).
作業系統概論 授課老師: 羅習五.
班級經營分享 主講人:吳姈娟 時間:104年3月4日.
Data Structure.
用FlashPrint 組合底版模型 與圖案模型
作業系統概論 授課老師: 羅習五.
Linux文件系统.
第4章 材质与贴图 4.1 材质的基本概念 4.2 材质编辑器 4.3 贴图 4.4 贴图坐标 4.5 材质类型 4.6 阴影类型
第六章 文件系统与文件管理 6.4 Linux文件管理 1、比较MS DOS 与 Linux的目录结构 一、Linux文件系统的树形结构
JAVA 程式設計與資料結構 第十七章 Tree.
舊約概論 課程介紹:本課程依舊約的歷史進展,介紹舊約時代的文化、政治、社會、經濟及宗教背景,並討論舊約每卷書的內容、寫作的前因後果,並作出詳細大綱。盼望藉此課程讓參與的學員渴慕且勤讀上帝的話語,並遵行上帝的教導,成為生命豐盛的基督徒,來榮神益人。 (詩119:33) 教室:207B 教師:魏耀德、林美慈、陳啟宗.
105-1 Data Structure Homework 4
主日信息 等候神 詩篇62篇 講員﹕鄧英善牧師 聖經分析排版本編著者 聖經信息協會主席
摘要簡報 作品名稱:魔鬼記憶問答 作者:台中市西屯區永安國民小學 葉政德老師、王素珍老師.
Presentation transcript:

数据结构 东北大学软件学院数据结构课程建设小组

 通过本课程的学习掌握常用数据结构的逻辑结构特 征、存储结构及相关算法及实现的原理。  学会从问题入手,分析研究计算机加工的数据结构 的特性,以便为应用所涉及的数据设计适当的逻辑 结构、存储结构及其相应的操作算法,并初步掌握 时间和空间分析技术。  学会用 C++ 语言、使用 STL 进行编程,合理解决问 题。  学会书写符合软件工程规范的文件,编写的程序代 码应结构清晰、正确易读,能上机调试并排除错误。 本课程学习的目的

 要求掌握表、栈、队列、串、数组、树、图等常用 的一些数据结构的逻辑形式、存储形式以及实现各 种操作的算法。  熟练使用 STL 编写大型程序,能根据用户的要求及 系统提供的数据,设计或选择合适的数据结构并能 编写正确的算法解决实际问题。  了解渐进时间复杂度分析方法,掌握常用算法设计 技术。  参与在软件设计各个阶段的工作,学会设计较复杂 的类来实现特殊的应用;学会调试及锁定性能瓶颈; 学会编写简练、有效和可扩充性好的代码。 本课程学习要求

 教材  殷人昆,陶永雷等编著:《数据结构》(用面向对象方法与 C++ 描述),清华大学出版社, 教材及参考书 (1)

 推荐参考书  Mark Allen Weiss, 《 Data Structures and Problem Solving Using C++ 》, 影印版,清华大 学出版社。  Herbert Schildt, C++: The Complete Reference, Fourth Edition, 周志荣等译,电子工业出版社出 版  Herbert Schildt, C++: The Complete Reference, Fourth Edition, 周志荣等译 ,电子工业出版社出 版 教材及参考书 (2)

 习题参考书  殷人昆,徐孝凯编著:《数据结构习题解析》(用面 向对象方法与 C++ 描述) 清华大学出版社, 教材及参考书 (3)

 学时分配:授课 56 学时 上机实验 8 学时 课外实验 32 学时  课程成绩: 平时成绩 + 期末考试成绩 平时成绩 40 % 书面作业、上机实验 期末考试 60 % 闭卷笔试 学时分配及考核方式

学时安排 教学内容讲课上机时间小计 第 1 章 绪论 4 4 第 2 章 数组 44 第 3 章 链表 4 4 第 4 章 栈和队列 44 4 第 5 章 递归 42 第 6 章 树与森林 10 第 7 章 集合与搜索 6 6 第 8 章 图 8412 第 9 章 排序 86 第 10 章 索引结构与散列 4 4 总 计 56864

数据结构与算法基础 第一部分:数据结构的概念

为什么要学习数据结构 为什么要学习数据结构 什么是数据与数据结构 逻辑结构、存储结构及数据的操作 内容

 步骤 ( 1 )获取问题的需求 ( 2 )分析问题,从问题抽象出模型 ( 3 )设计阶段,给出解决方案。 ( 4 )估算解决问题的开销,判断其可行性 ( 5 )实现和运行维护 计算机解决问题的方法

通过对 问题的抽象 数据的抽取 算法的设计 。 分析问题和解决问题,就是应用数据结构 和算法来设计和实现高效程序。 问题求解的过程

描述问题领域中实际对象的数据及数据间的相互关系 按照数据及其关系的特点将数据存储到计算机中的存 储器中 编写算法模拟对象领域中的求解过程 数据结构和算法互为存在 问题求解的实质 程序 原始数据 结果数据

通讯录中联系人查找 问题求解的案例

在百度地图搜索引擎上查找餐馆; 问题求解的案例

在百度地图搜索引擎上查找餐馆; 问题求解的案例

软件工程专业要开设的课程中具有先后关系, 为所有课程安排合适的开设顺序; 问题求解的案例 C 1 高等数学 C 1 高等数学 C 2 程序设计基础 C 2 程序设计基础 C 3 离散数学 C 1, C 2 C 3 离散数学 C 1, C 2 C 4 数据结构 C 3, C 2 C 4 数据结构 C 3, C 2 C 5 高级语言程序设计 C 2 C 5 高级语言程序设计 C 2 C 6 编译方法 C 5, C 4 C 6 编译方法 C 5, C 4 C 7 操作系统 C 4, C 9 C 7 操作系统 C 4, C 9 C 8 普通物理 C 1 C 8 普通物理 C 1 C 9 计算机原理 C 8 C 9 计算机原理 C 8

数据结构的研究问题: 非数值型数据之间的结构关系, 及如何表示,如何存储,如何处理。 数据结构: 讨论描述现实世界实体的数学模型 及其上的操作在计算机中的表示和实现。

为什么要学习数据结构 研究和解决非数值数据的组织和处理 研究和解决非数值数据的组织和处理 非数值计算问题的数学模型,不再是数学方程 例子:线性表、树、图、集合 算法 + 数据结构 = 程序 算法 + 数据结构 = 程序 算法和数据结构之间的关系 软件系统的架构应当建立在数据之上 数据结构的作用范畴 数据结构的作用范畴 抽象数据对象的数学模型、明确操作 存储结构上映射数据、实现操作

数据结构 数据的逻辑结构 图、树、二叉树、线性表 数据的存储结构 顺序方法 链式方法 索引方法 散列方法 数据的运算 增加、修改、删除 排序、检索

为什么要学习数据结构 什么是数据与数据结构 什么是数据与数据结构 逻辑结构、存储结构及数据的操作 内容

 数据:数据是信息的载体,是描述客观事物的数、 字符、以及所有能输入到计算机中,被计算机程 序识别和处理的符号的集合。  数值性数据  非数值性数据  数据对象:数据的子集。具有相同性质的数据成 员(数据元素)的集合。  整数数据对象 N = { 0,  1,  2, … }  学生数据对象 数据的概念

数据元素:数据中的一个 “ 个体 ” ,也称 “ 数据记录 ” 。是数据结构 中讨论的基本单位 。 数据项 : 相当于记录的 “ 域 ”, 是数据的不可分割的最小单位。是数 据结构中讨论的最小单位 。 ( 原子项、组合项 ) ( 原子项、组合项 ) 数据元素 数据项 数据的概念

数据结构 数据结构:一类按照一定的逻辑关系组织起来 的数据的表示、相关操作的实现 数据结构:一类按照一定的逻辑关系组织起来 的数据的表示、相关操作的实现   逻辑结构:数据元素之间的逻辑关系   存储结构:数据结构在计算机存储器中的表示方法, 也称为存储表示;   运算:结构的行为特征,作用于数据结构上的运算 常见的基本数据结构:线性表、字符串、栈、 队列、树和二叉树、图、字典

数据的逻辑结构 定义 : 由某一数据对象及该对象中所有数据成员之间的关系组成。 记为: 由某一数据对象及该对象中所有数据成员之间的关系组成。 记为: Data_Structure = {D, R} Data_Structure = {D, R}其中: D 是某一数据对象 D 是某一数据对象 R 是该对象中所有数据成员之间的关系的有限集合。 R 是该对象中所有数据成员之间的关系的有限集合。

“ 学生 ” 表格 在这类文档管理的数学模型中, 计算机处理的对象之间通常 存在着一种最简单的线性关系, 这类数学模型称为线性模型

UNIX 文件系统的系统结构图 / (root) bin lib user etc math ds swyintaoxie Stack.cppQueue.cpp Tree.cpp

课程开设关系图 —— 图型结构

为什么要学习数据结构 什么是数据与数据结构 逻辑结构、存储结构及数据的操作 逻辑结构、存储结构及数据的操作 内容

数据的逻辑结构  关系  数据的逻辑结构的讨论,一般把重点放在关系集 R 上;   根据 R 的性质刻画数据结构的特点,按照数据元 素之间的关系划分可以分成: 一对一:线性结构( linear structure ) 一对多:树形结构 (tree structure) 多对多:图型或网状结构 (graph structure)

 数据的存储结构 ( 物理结构 ) : 数据的各元素及其之间的关系在计算机中的存储表示。 是逻辑结构的物理存储方式、存储映像  存储结构类型: 顺序结构 链式结构 索引结构 散列结构 数据的存储结构

  顺序结构 用一块连续的存储区域存储数据 按照地址相邻的关系存储数据,借助于存储单元的自然顺序 来表示数据元素之间的关系 访问具有便利性 称之为紧凑存储结构 数据的存储结构

  链式结构 利用指针,在数据元素的存储中附加一个指针字段; 借助于指针指示的关系来表示数据元素的关系 链式存储为经常增删结点的复杂数据结构提供了解决方法 顺序查找 数据的存储结构

  索引结构   顺序存储的一种推广,使用整数编码来访问数据结点位置   构造一个将整数域 Z 映射到存储地址域 D 的函数,把数据元素 的整数索引值映射到结点的存储地址,一般用附加的存储空 间构成一个索引表 数据的存储结构

  散列方法 利用散列函数的机制进行存储位置的计算 要适当地选取函数,解决地址冲突的问题 数据的存储结构

 数据运算: 定义于逻辑结构、实现于存储结构 对数据的检索、插入、删除、更新、排序等操 作 数据的运算

 它研究了计算机需要处理的数据对象和对象 之间的关系。  它刻画了应用中涉及到的数据的逻辑组织。  它描述了数据在计算机中如何存储、传送、 转换。 小结 为什么要学习数据结构 ?

从传统的观点来看 数据的逻辑结构  线性结构  非线性结构 主要讨论哪几种数据结构 ?

ABCDEF A B DEG C A B C D E 线性结构 非线性结构

数据的物理结构  顺序结构  链表结构  散列结构  索引结构

在数据结构上的操作  查找  排序  插入  删除  修改