数据结构武汉大学

从本质上讲,数据结构属于编程类的课程,是程序设计语言课程的进阶篇。首先,程序是对数据的操作,由输入产生输出。对于比较复杂的数据,就需要从数据结构的角度来组织和存储数据,如采用数组还是链表存储结构更加高效;另外,对于比较复杂的数据操作,就需要采用一些特定的数据结构来求解,如判断一个表达式中的括号是否匹配,就需要采用栈来处理。所以数据结构课程中讲解人们在软件开发中常见的各种数据结构,并从逻辑结构到存储结构,再到运算算法设计3个层面加以学习。

从计算机科学专业的课程设置来看,数据结构是重要的专业基础课。在计算机软件类课程体系中处于承上启下的核心地位,它一方面扩展和深化在离散数学、程序设计语言等课程学到的基本技术和方法,另一方面为进一步学习其他专业课(如算法设计与分析、操作系统、软件工程等)奠定坚实的理论与实践基础。

C语言程序设计。具备初步的C程序设计知识,将有助于深入学习本课程的内容。

为积极响应国家低碳环保政策,2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

认证证书申请注意事项:

2.完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。

[1]数据结构教程(第4版)清华大学出版社2013

[2]数据结构教程学习指导清华大学出版社2013

[3]数据结构教程上机实验指导清华大学出版社2013

Q1:本课程的选课条件是什么?

A:本课程的主要对象是大学本、专科生,但不限于大学生。只要你是计算机编程爱好者、具有基本的C语言程序设计基础,有热情,有决心,就能学好。

Q2:我没有学过C语言,但学过Java、C#或者Python等语言,是否可以选学本课程?

A:Java、C#或者Python等语言的编程思路和C/C++语言是相通的,尽管本课程是主要采用C语言描述算法,但你采用Java、C#或者Python等语言描述算法完全是可以的。

Q3:你的数据结构课程为什么说采用C/C++语言来描述算法?

A:本课程的算法主要采用C语言面向过程方式来描述的。由于纯C语言中调用函数时,只有实参到形参的单向值传递,算法设计不方便简洁,而C++语言中提供了引用运算符(&)可以方便地实现实参和形参的双向传递。这里说采用C/C++语言来描述算法,实际上仅仅使用了C++语言中的引用运算符,其他都是采用纯C语言的知识。

Q4:你的数据结构课程为什么不采用C++面向对象方法来描述算法?

A:采用C++面向对象方法可以更加完美地描述算法,但考虑到绝大部分在校学生学习数据结构课程时,仅仅学习过C语言,还没有学习过C++面向对象程序设计,所以本课程主要采用C语言面向过程方式来描述算法。

Q5:数据结构课程的上机实验采用什么编译器?

A:如果采用C/C++语言描述算法,可以采用VisualC++6.0、DevC++、BorlandC++或者VisualStudio.NET等C/C++语言编译器上机实验。由于算法中采用引用运算符(&),所以不适合采用TurboC2.0(或者更低版本)编译器。

Q6:数据结构课程和算法设计与分析课程有什么不同和联系?

A:数据结构课程主要学习各种数据结构,其算法设计是围绕各种数据结构展开的。而算法设计与分析课程学习更通用的算法设计方法,即算法策略,如动态规划、贪心法和分支限界法等。

Q7:数据结构课程中讲解哪些数据结构?

A:数据结构课程中讲解的数据结构从逻辑结构上分为线性结构、树形结构和图三类。线性结构包括线性表、栈和队列等,树形结构包括树和二叉树等。

Q8:数据结构中的算法为什么需要用计算机语言描述出来?

A:从理论上讲,算法可以用自然语言、伪码和计算机语言来描述。但一个学习计算机的学生,应该熟练使用计算机语言(如C/C++)来描述算法。如同一个英语专业的学生,必须能够用英语思考问题并表达。学会并熟练采用计算机语言描述算法就是从计算机的角度来求解问题。

Q9:如何学好数据结构课程?

A:这个问题的回答既简单又困难,用我在《数据结构简明教程》中的作者寄语来回答吧:“老师教给我们的是知识,而解决问题需要能力,能力是个性化的,只有通过自已的实训才能得到。对于一个学计算机专业的学生,只有编写和调试n多的程序,才会获得程序设计的能力,继而具备初步的软件设计和开发基础,别无它法。只想听几堂课而不经过大量课外研习和上机实践就想获取这种“能力”是不可能的。”

由高教社联手网易推出,让每一个有提升愿望的用户能够学到中国知名高校的课程,并获得认证。

THE END
1.数据结构与算法设计西安科技大学慕课《数据结构与算法设计》主讲教师及负责人,在学堂在线及西安科技大学网络课程平台开课。作为《数据结构与算法设计》课程的主讲教师,建立了数据结构精品课程网站,主编了《数据结构与算法设计》教材及《数据结构题解与实验指导书》,并于2006年获得陕西省精品课程称号, 2015年重新认定为陕西省精品资源共享课程。张小艳https://www.xuetangx.com/courses/course-v1:XUST+2018122903X+2018_T2/about
2.数据结构与算法基础概览数据结构与算法设计 绪论: 1.数据,数据元素/记录是数据的基本单位,数据元素有的由若干项数据项构成。 2.算法是对解决特定问题求解步骤的描述,再计算机中就是指令的有限序列,每条指令可表示为一个或多个操作 一个算法应具有以下几条性质: 正确性,具体性,确定性,有限性,可读性,健壮性https://blog.csdn.net/kkxx_333/article/details/128826863
3.算法设计与数据结构《算法设计与数据结构》是2005年Kleinberg出版的图书,作者是Kleinberg。本书以各种算法设计技术(如贪心法、分治策略、动态规划、网络流、近似算法、随机算法等)为主线来组织素材,突出了算法设计的思想和分析的基本原则,为从事实际问题的算法设计与分析工作提供了清晰的、整体的思路和方法。简介 中文名: 算法设计与https://baike.baidu.com/item/%E7%AE%97%E6%B3%95%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/550436
4.数据结构与算法设计数据结构是算法的基础,算法的操作对象是数据结构。 数据结构关注的是数据的存储方式,确定求解问题中的数据是按照链式结构,还是顺序结构来存储,以及数据的逻辑结构和基本操作。 算法设计就是在选定的数据结构上设计出一个好的解决问题的算法。 算法是编程思想,数据结构是是这些思想的的逻辑基础。 https://www.jianshu.com/p/4a3e7e4f9048
5.计算机科学中的算法设计与数据结构的离散性AET计算机科学中的算法设计与数据结构的离散性 甄鹏华,于振梅 (山东女子学院 信息技术学院, 山东 济南 250300) 摘要:数字电子计算机是一个离散结构,它只能处理离散的或离散化了的数量关系,因此,无论计算机科学本身,还是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何对离散结构建立相应的数学模型,以及如何http://www.chinaaet.com/article/3000057392
6.软件设计师考点七:数据结构与算法基础软件设计师摘要:2019年软件设计师考试已经进入冲刺阶段,希赛网软考频道小编为大家整理了软件设计师知识点,以下为软件设计师知识点七:数据结构与算法基础。 第7章:数据结构与算法基础 【知识点梳理】 知识点1、数组与矩阵(★★) 【考法分析】 1、本知识点的考查形式主要有:给定一些数组或矩阵,计算对应某个元素的存放位置或https://www.educity.cn/rk/1970488.html
7.数据结构与算法(十二)——算法动态规划CraftsmanL数据结构与算法(十二)——算法-动态规划 一、青蛙跳台阶&斐波那契数列 1、问题 一只青蛙跳台阶,每次可以跳 1 层或 2 层。青蛙跳到 n 层一共有多少种跳法? 2、思想 先把问题规模缩小,考虑 n = 1时,n = 2的解。那么,显然有: (1)边界条件:dp[1] = 1、dp[2] = 2https://www.cnblogs.com/originator/p/15292301.html
8.数据结构与算法李春葆第五版答案数据结构与算法李春葆pdf程序设计语言 数据结构 算法设计与分析 识字 写小作文 写大文章 1.4 数据结构的学习目标 掌握数据结构的基本概念、基本原理和基本方法。 掌握数据的逻辑结构、存储结构及基本运算的实现过程。 提炼 设计 实现 求解问题 数据运行-->数据 数据逻辑结构 数据存储结构 https://blog.51cto.com/u_16099329/7816376
9.程序=数据结构+算法《禅与计算机程序设计艺术》/陈光剑“数据结构和算法是过去 50 年来最重要的发明之一,它们是软件工程师需要了解的基础工具。”《Think Data Structures: Algorithms and Information Retrieval inJava》(Allen B.Downey) 基本数据类型 道生一,一生二,二生三,三生万物。 在计算机程序设计的世界里,先有基本数据类型,复合组装成复杂对象类型,不同对象之间https://cloud.tencent.com/developer/article/1815180
10.数据结构与算法应用教程(C语言版)最新章节彭娟著算法操作的对象是数据,数据间的逻辑关系、数据的存储方式及处理方式即是数据结构。它与算法设计是紧密相关的。在后面的具体案例分析讲解中会进行描述。 1.3.3 算法的基本性质 并不是所有问题都有解决的方法,也不是所有解决问题的方法都能设计出相应的算法。算法必须满足以下5 个重要特性。 1.有穷性 一个算https://m.zhangyue.com/readbook/12948279/10.html
11.数据结构与算法(一):概述数据元素之间存在的一种或多种特定关系,也就是数据的组织形式,叫数据结构。也可以说,数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。程序设计的实质就是数据结构和算法是设计,因此我们说程序设计 = 数据结构 + 算法。 https://developer.aliyun.com/article/1213753
12.计算机科学与技术课程主要内容:面向对象机制、面向对象分析、设计思想,掌握Java的封装、继承、多态、重载、接口、文件处理、GUI设计的基本方法和原理、线程技术、Socket网络编程技术和JDBC数据库连接技术。 实践条件要求:JDK、Eclipse、SQL Server。 (二)《数据结构与算法》 课程目标:掌握常用数据结构的基本概念及其不同的实现方法,了解数http://xuexi.jsou.cn/jxpt-web/program/getProgramInfo/795025d9be9c492492bffefbdc7fc0e1
13.数据结构课程设计方案(精选8篇)根据教材《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,或选择下列与实际应用紧密结合的较综合性的题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。 https://www.360wenmi.com/f/filet8tgnq2p.html
14.挑战程序设计竞赛2:算法和数据结构中文完整pdf版[55MB]附源码电子《挑战程序设计竞赛2:算法和数据结构》分为准备篇、基础篇和应用篇三大部分,借助在线评测系统Aizu Online Judge以及大量例题,详细讲解了算法与复杂度、初等和高等排序、搜索、递归和分治法、动态规划法、二叉搜索树、堆、图、计算几何学、数论等与程序设计竞赛相关的算法和数据结构,既可以作为挑战程序设计竞赛的参考书,https://www.jb51.net/books/653002.html