【讲师介绍】
王 清
资深讲师,现任Nokia(中国) 固定网络事业部高级工程师,新音界公司产品经理,曾参与研发全球首款智能语言鼠标MiMouse。荣获国家计算机等级考试四级证书,IBM高级软件开发工程师证书,全国软件开发(C/C++)专业人才证书(高级)等。拥有多年软件开发、服务外包和服务器开发经验。讲授的经典课程有《C++程序设计》,《面向对象的程序设计》等。
《数据结构》讨论的是数据的逻辑结构、存储方式以及相关操作的实现等问题。高等学校计算机专业将《数据结构》列为必修课。 购买前请先确保自己具备扎实的C语言基础,如果基础薄弱,有可能听不懂课上讲解。
你可以精通10门语言,了解各种设计模式,各种框架,但是少了数据结构,你就永远走不远,像一个握有几百种民房设计图纸的建筑设计师一样,你也不可能能设计的出迪拜塔。
【课程序言】
某些特定的情况下,语言提供的基本数据结构(例如int,char,bool等)不能满足你的使用需求,这个时候你就需要更高级的数据结构来应付这些情况。就像武功招式,你用惯了基础招式,就需要学习杀伤力更强用途更广的招式,就好比基础武功之上的二级招式。
当你了解了这些招式,像链表,堆栈,二叉树,图等等,你就可以用更深厚的底气来面对计算机的世界,你可以知道网络里面节点的互相连接就是图的具体实例,你可以用图的最短路径算法求出实际网络上一个节点到另一个节点的最短路径,你可以知道操作系统里面海量的文件可以由B+/B-树来组织,你可以知道进程管理里面可以用优先队列(堆)调度带优先级的进程,你可以知道函数的调用就是对系统栈的操作。
简单来说,你可以加深对计算机世界的理解。 另一方面,某些数据结构在特定的环境下可以提高使用者的效率。例如用二叉树来查找,树形结构在查找中很大的一个好处就是减免了很多不必要的查找。当你按左小右大(左半边的所有数都小于中间的数,右半边所有数都大于中间的数)的方式组织好一个数列的二叉树,你可以每次只和中间的数比较,不断缩小范围就可以找到你要找的数。如此显然比顺序查找要快的多。
当你学完数据结构,你也会顺带着对算法有了一些了解,因为数据结构和算法往往是不分家的,算法常常需要特定的数据结构支持,例如图论的算法几乎都要图的数据结构支持。而这些精彩绝伦的内容,由资深讲师王清老师为你揭开神秘的面纱。
【数据结构导论】
随着计算机软、硬件的发展,计算机的应用范围在不断扩大,计算机所处理的数据的数量也在不断扩大,计算机所处理的数据已不再是单纯的数值数据,而更多的是非数值数据。
需要处理的数据并不是杂乱无章的,它们一定有内在的联系,只有弄清楚它们之间的本质的联系,才能使用计算机对大量的数据进行有效的处理。
使用计算机处理用户信息表中的数据时,必须弄清楚下面3个问题:
1) 数据的逻辑结构(各结点的关系)
2) 数据的存储结构(存入计算机中的结构)
3) 数据的运算集合(相关运算,如删除、添加等)
数据结构就是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。