从上大学开始对数据结构一直处于膜拜观望的状态,很清楚这个东西很重要,但就是学不会,我们学校使用的教材是严蔚敏的数据结构,大家都说这是一本很经典的书,我一直感觉不到它经典到哪,究其原因是看不懂,书中使用了大量的伪代码,全尼玛讲的思想,看着都头疼。对于此类书我只想说一个字,去你的吧。所以大学四年我尽了最大努力看完了第一章。比起看不懂让我更失望的是我竟然没挂科,莫名其妙的考过了75分。呃......醉了。不挂科显然不是我的最终目的,我想把它搞清楚这到底是个什么东西,多年的心结直到遇见了一位大神的大话系列书籍,才有了解开的趋势。废话不多说,开始看书。(注释:下面的文字加小括号的内容是我想吐槽的话。)
“人们无法理解他没有经历过的事情”(这句话说的真对,不管是谁说的,我挺他。)
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。(多好的定义,相当准确,相当合理,我就不说某些专业教材了,就是不能一句话概括一下数据结构是啥,还说至今没有一个准确的定义,那你给个不准确的啊。一句话就能说清的事,你搞个二元组来解释半天,让我懵逼了好几年。)
数据结构起源:1968年,美国的高德纳教授在其所写的《计算机程序设计艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。(突然感觉理科生比文科生更需要学习历史,但是与文科生不同的是理科生学习的应该是科技的发展历史,比如,是谁通过什么方法发现了啥,发现的东西能干啥,这些历史能够让这些晦涩难懂的东西更接地气,更通俗。)
一些概念和术语
数据:数据是描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。(这个定义比较随大流,所有的计算机书籍都是这样定义数据的。)
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被成为记录。(同上)
数据项:一个数据元素可以由若干个数据项组成。是数据不可分割的最小单位。(同上)
数据对象:是性质相同的数据元素的集合,是数据的子集。在不产生混淆的情况下,都将数据对象简称为数据。(很容易让人联想到类。)
结构:结构的意思是组成整体的各部分的搭配和安排。简单理解就是关系。(百度百科的解释。)
数据结构:显然研究的是数据元素之间的关系。
逻辑结构:是指数据对象中数据元素之间的关系。逻辑结构分为以下四种:1.集合结构,集合结构中的元素除了同属于一个集合外,它们之间没有其他关系。类似于数学中的集合;2.线性结构,线性结构中的数据元素之间是一对一的关系;3.树形结构,树形结构中的数据元素之间存在一种一对多的层次关系;4.图形结构,图形结构的数据元素是多对多的关系。
物理结构:也叫存储结构,是指数据的逻辑结构在计算机中的存储形式。数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器中,存储器主要是针对内存而言的。外存通常用文件结构来描述。数据的存储结构应正确反映数据元素之间的逻辑关系。数据元素的存储结构形式有两种:顺序存储和链式存储。
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
原文地址:http://www.cnblogs.com/longsanlang/p/6941016.html