数据结构——01数据结构绪论

数据结构绪论

一、数据结构起源

      早期人们把计算机作为数值计算工具,就是说,人们认为计算机只能进行数据计算。因此为了解决问题,需要先从具体问题中抽象出一个适当的数据模型,设计出一个解决该模型的算法,然后再编写程序,得到一个实际的软件。

可现实生活中,人们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表格、索引等)的帮助,才能更好的解决问题。所以,数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

1968年,美国Donald E. Knuth教授在其所写的《计算机程序艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构以及操作,开创了“数据结构”的课程体系。同年,数据结构作为一门独立课程,在计算机科学学位课程中开始出现。

数据结构是介于数学、计算机硬件、计算机软件、逻辑学等学科之间的综合学科,是计算机学科的一门核心课程,是设计实现编译系统、操作系统、数据库等其他课程和大型应用程序的基础。

进入70年代,出现了大型计算机程序,软件开始相对独立,结构程序设计成为程序设计方法学的主要内容。人们越来越重视“数据结构”,认为程序设计的实质是对确定的问题选择一种好的数据结构,加上设计出一种好的算法。即:

程序设计=数据结构+算法

二、数据结构基本概念

1、数据

定义:数据(Data):是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别、并输入给计算机处理的符号集合。

正所谓“巧妇难为无米之炊”,数据结构是针对数据进行研究的学科,那么这里的“米”就是数据。

数据不仅仅包含整型、字符型、浮点型等数值类型,还包括字符、图像、声音、视频等非数值类型。

数据必须具备两个前提:

⒈可以输入到计算机中

⒉能被计算机识别并处理

2、数据元素

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

例如,若我们要对家畜类进行调查,则牛、羊、马、狗、猪等都是家畜类的数据元素。

3、数据项

定义:数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。

比如人这样的数据元素,可以有眼、耳、鼻、口、手等数据项,也可以有姓名、年龄、性别、出生日期、出生地址、联系电话等数据项。具体使用哪些数据项,要视你做的程序决定。

4、数据对象

定义:数据对象:是性质相同的数据元素的集合,是数据的子集。

5、数据结构

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

在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定的联系,也就是数据的组织形式。

总体来说,数据结构就是研究数据的存储、数据的操作,以及数据间的关系的学科。

三、逻辑结构与物理结构

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

1、逻辑结构

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

1)集合结构:集合结构中的数据元素除了同属一个集合外,它们之间没有其他关系,各个元素是“平等”的。数据结构中的集合结构类似于数学中的集合。

2)线性结构:线性结构中的数据元素之间是一对一的关系。一个数据元素(除开头元素)都有一个前驱,一个数据元素(除结尾元素)都有一个后继。

3)树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。一个数据元素(除根节点元素)都有一个前驱,一个数据元素(除叶节点元素)都有多个后继。

4)图形结构:图形结构中的数据元素之间是多对多的关系。一个数据元素(除特殊元素)都有一个或多个前驱,一个数据元素(除特殊元素)都有一个或多个后继。

我们在画逻辑结构示意图时,要注意两点:

⒈将每个数据元素看做一个节点,用圆圈表示。

⒉元素之间的关系用节点间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。

2、物理结构(其他书籍也译为“存储结构”)

物理结构:是指数据的逻辑结构在计算机内存中的存储形式。

数据的物理结构要能正确地反应数据元素之间的逻辑关系,如何针对存储数据的逻辑结构构建其对应的正确的物理结构,是实现物理结构的重点和难点。

数据元素的物理结构主要有两种:顺序存储和链式存储。

//注:另外的索引存储、散列存储等其他存储结构不做介绍

1)顺序存储结构

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

我们在之前的C语言课程中,数组就是顺序存储结构。

2)链式存储结构

链式存储结构:是把数据元素存放在任意的存储单元里,这些存储单元可以是连续的,也可以是不连续的。数据元素之间需要使用指针来找到与其相关的数据元素的位置。

四、对数据的运算(操作)

数据结构中,对数据的基本操作主要有:

⒈插入:在指定位置插入新的数据

⒉删除:删除指定位置(或指定关键字)的数据

⒊排序:将数据按一定的关键字顺序进行排序使其有序

⒋查找:按指定关键字查找某项数据

⒌修改:修改某项数据

⒍遍历:按某种顺序访问数据结构中所有节点,每个节点能且仅能被访问一次。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值