大学期间数据结构虽然学得不算一塌糊涂,却也确实没学好,看到<大话设计模式>的作者程杰老师又出书了,还是忍不住想得到一本,何况这次的书籍正是我薄弱的数据结构呢?

     其实大学没学好这门课一个很重要的原因就是不知道它究竟有什么用,学习生涯似乎一直都是这样,从开始数数的时候就没有人告诉我们知道1+1=2有什么意思,直到某天你自己意识到了才会发现它的用途.在求职的道路中,我走得并不是那么顺畅,其中在外企摔倒的几次都是因为数据结构.虽然现在顺利入职了,还是想花一些时间好好折腾下数据结构.

      买好了书籍的第一件事就是到程老师的博客中找勘误,毕竟再好的书籍都会有难免的错误.这本书的错误虽然不少,但是我们不能因为关注了错误却忽略了书本里的知识.

      翻开书本第一章,就能一如既往的进入程老师幽默风趣的授课课堂,故事就从小菜开始了.....

      其实绪论和其他教科书一样无非是说些基本概念什么的,不过程老师用幽默风趣的方式让课堂不那么死气沉沉.

      首先,数据结构是什么?其实就是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科.而众所周知的,程序设计=数据结构+算法.可是,数据是什么呢?如果说计算机是个巧妇,单凭她,如果没有材料,又要如何能做出美味佳肴呢?没错,数据就是材料.专业说来:数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合.数据元素则是组成数据的,有一定意义的基本单位,在计算机中通常作为整体来被处理,因此也被称为记录.数据项是数据不可分割的最小单位.一个数据元素可以由若干个数据项组成.数据对象是性质相同的数据元素的集合,是数据的子集.

     所以,数据结构是相互之间存在一种或多种特定关系的数据元素的集合.

     按照视点不同,数据结构可以分为逻辑结构和物理结构.其中,逻辑结构又分为四种:集合结构,线性结构,树形结构和图形结构.

      集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系.

      线性结构中的数据元素之间是一对一的关系.

      树形结构中的数据元素之间存在一种一对多的层次关系.

      图形结构中的数据元素是多对多的关系.

      逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系.物理结构则是数据的逻辑结构在计算机中的存储形式.分为顺序存储结构和链式存储结构.

     顺序结构是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的.

     链式存储结构是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

     数据类型是指一组性质相同的值的集合及定义在此集合上的一些操作的总称.

     抽象数据类型(ADT)是指一个数学模型及定义在该模型上的一组操作.描述抽象数据类型的标准格式:

View Code
 1 ADT  抽象数据类型名
2 Data
3 数据元素之间逻辑关系的定义
4 Operation
5 操作1
6 初始条件
7 操作结果描述
8 操作2
9 ......
10 操作3
11 ......
12 操作n
13 ......
14 endADT

       以上即第一章的内容,接下来是总结回顾:

       1,数据结构中的相关概念:数据,数据对象, 数据项,以及由此引发的数据结构的概念。

       2,数据结构的分类:逻辑结构和物理结构及其各自的分类.

posted on 2011-08-30 13:14  Jeallyn  阅读(292)  评论(0编辑  收藏  举报