Posted on 2006-06-02 14:04
hays(海纳百川) 阅读(934)
评论(1) 编辑 收藏
严蔚敏编著的<< 数据结构>>,.算起来这本书我也看了快3到4遍了.自我感觉还可以,最起码基本上了解了什么是线性表,栈,队列,树....也能自己上机用C实现."数据结构,什么是数据结构" 这样一个问题出现了,我感觉挺模糊的,花了几个小时来看了下,有了点想法,写下来让大家看看.
自从开始学习编写程序,我就很清楚记的书上的一句话"程序=数据结构+算法".(呵呵,常用这句话在同学面前装高深,还是有很多人不知道地).编程我觉的就是一个从现实到模拟的一个过程.首先从具体的问题抽象出一个数学模型,然后设计一个解决这个问题的算法,最后编出程序.当然了在现实生活中有很多不可能用数学模型来描述的,数据结构就是为了研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等等..
<<数据结构>>-严 中对数据结构的定义是:相互之间存在一中或多种特定关系的数据元素的集合; 数据元素都不是孤立存在的,而是在他们之间存在某些关系的.感觉挺抽象的,都是数学描述。我的个人理解是吧,数据结构就是用来存放有特定关系的数据的容器,就象一些特定的瓶子,里边必须放一类东西,比如:一个瓶子放糖果,一个放水果.当然了,我这种说法有些不恰当.
讨论数据结构的目的是为了在计算机中实现对它进行操作.数据类型就是对数据结构的操作(个人观点),我门编程的时候老是说到什么int数据类型,char型...好象并没有看到这些类型有什么操作,其实不是的..加,.减,乘,除,其实就是定义在int类型上的一组操作. 这里我就想问了.那么我们编程时说的Queue到底是数据结构还是数据类型呢.从定义的角度来看,Queue有对数据的操作,应该是数据类型. 那么口头说的'队列'应该是数据结构,为什么呢?就拿'"银行排队取钱"这个问题来说,我们说要用'队列'来实现,我们要的只是一种对数据的存储结构(也就是说人应该排在队列里,而不用管他怎么排),这种存储结构(队列)有一种特性就是先进先出,(至于它的这种特怎么实现我们不用管).
数据类型就是指一个数学模型以及定义在该模型上的一组操作,那类是不是数据类型呢?类包括他的成员变量和成员方法,而方法是对成变量的操作,所以说类应该是一种数据类型.但是类有自身的创建和销毁,这点符合(ADT)抽象数据类型的特点.面向对象有个重要的特点就是对信息的隐藏(即封装),那么数据类型有没有这样的特点了,应该是有的.就拿整型来说吧,用户在使用整数类型时,即不需要了解他在计算机内部怎么表示的,也不需要知道怎么操作的,如"两整数相加",我们只需要知道的仅仅是他在"数学上求和"这样一个抽象的特性,而不要考虑他是怎么在硬件内部怎么进行"位"运算的.
个人的理解,肯定有很多是不妥的,呵呵!!