数据结构--------开篇

    if you give someone a program ,you will frustrate him for a day,if you teach him how to program,you will frustrate him for a lifetime!

-------------------------------------------------------------------------------------------------

数据结构的起源:早期人们把计算机理解为数值计算工具,就感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数学模型,设计出一个解此数据模型的算法,然后编写程序,得到实际的软件。可是现实生活中,我们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树、和图等等数据结构)的帮助,才能更好的处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科

1968年,美国的 Donald Ervin Knuth教授,在其所写的《计算机程序设计艺术》中的基本算法中,较为系统的阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系,之后,随着大型程序的出现,人们越来越重视数据结构,认为程序设计的实质是对确定的问题选择一种好的数据结构,加上设计一种好的算法

基本概念和术语:

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅包括整型、字符型等数值类型,还包括字符以及声音、图像、视频等非数值类型。也就是说:我们这里所说的数据就是符号,这些符号具有两个特征:

  • 可以输入到计算机
  • 能被计算机程序处理

        数值型数据可以进行计算,字符型数据进行非数值的处理,声音、图像、视频等可以通过编码的手段变成字符数据来处理。

数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

数据项: 一个数据元素可以有若干个数据项组成,比如,人这样一个数据元素,可以有眼、耳、口、鼻等等数据项组成。

        数据项是数据不可分的最小单位,在数据结构中,我们把数据项定义为最小单位,有助于我们更好的解决问题。但真正讨论问题时,数据元素才是数据结构建立数据模型的着眼点。就像我们讨论一部电影时,是讨论这部电影角色这样的数据元素,而不是针对这个角色的姓名或者年龄等数据项去分析。

数据对象:是性质相同的数据元素的集合,是数据的子集。性质相同是指具有相同的数量和类型的数据项。

结构不同数据元素之间不是独立的,而是存在特定的关系,我们把这种关系叫做结构

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

为了编写一个好的程序,必须分析待处理对象的特性及各处理对象之间存在的关系,这就是研究数据结构的意义所在。

        按着视点不同,我们把数据结构分为逻辑结构物理结构

逻辑结构:是指数据对象中数据元素之间的相互关系。主要分为:集合结构,线性结构,树形结构,图形结构,

物理结构:亦或者称为存储结构,是指数据的逻辑结构在计算机中的存储形式。

数据是数据元素的集合,根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器,存储器主要是针对内存而言,外部存储器的数据组织通常用文件结构来描述。

数据的存储结构应当是反应 数据元素之间的逻辑关系。是实现物理结构的重点和难点。

数据元素的存储形式有两种:顺序存储和链式存储

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

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

逻辑结构是面向对象的,而物理结构是面向计算机的。基本的目标就是将数据及其逻辑关系存储到计算机的内存中。


抽象数据类型:

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

抽象:抽取出事物具有的普遍性的本质。抽取特征而忽略非本质细节,对具体事物的一个概括。

抽象数据类型:

对已有的数据类型进行抽象,就得到抽象数据类型。是指一个数学模型及定义在该模型上的一组操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值