数据结构绪论

数据结构绪论
一、数据结构起源
早期人们把计算机作为数值计算工具,就是说,人们认为计算机只能进行数据计算。因此为了解决问题,需要先从具体问题中抽象出一个适当的数据模型,设计出一个解决该模型的算法,然后再编写程序,得到一个实际的软件。(数学建模大赛,汽车尾气和雾霾的关系)
可现实生活中,人们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表格、索引等)的帮助,才能更好的解决问题。所以, 数据结构是一门 研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的 学科
1968年,美国Donald E. Knuth教授在其所写的《计算机程序艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构以及操作,开创了“数据结构”的课程体系。同年,数据结构作为一门独立课程,在计算机科学学位课程中开始出现。
数据结构是介于 数学、计算机硬件、计算机软件、逻辑学等学科之间的综合学科,是计算机学科的一门核心课程,是设计实现编译系统、操作系统、数据库等其他课程和大型应用程序的基础。
进入70年代(70年代左右软硬件开始分家),出现了大型计算机程序,软件开始相对独立,结构程序设计成为程序设计方法学的主要内容。人们越来越重视“数据结构”,认为 程序设计的实质是对确定的问题选择一种好的数据结构加上设计出一种好的 算法。即:
程序设计=数据结构+算法(冒泡排序)
二、数据结构基本概念
1、数据(巧妇难为无米之炊)
定义:数据(Data):是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别、并输入给计算机处理的符号集合。
正所谓“巧妇难为无米之炊”,数据结构是针对数据进行研究的学科,那么这里的“米”就是数据。
数据不仅仅包含整型、字符型、浮点型等数值类型,还包括字符、图像、声音、视频等非数值类型。
数据必须具备两个前提:
⒈可以输入到计算机中
⒉能被计算机识别并处理
2、数据元素( 结构体
定义:数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也称为“记录”。
例如,若我们要对家畜类进行调查,则牛、羊、马、狗、猪等都是家畜类的数据元素。
3、数据项
定义: 数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的 最小单位
比如人这样的数据元素,可以有眼、耳、鼻、口、手等数据项,也可以有姓名、年龄、性别、出生日期、出生地址、联系电话等数据项。具体使用哪些数据项,要视你做的程序决定。
4、数据对象
定义: 数据对象:是性质相同的 数据元素的集合,是数据的子集(某一数据类型的所用集合)。
5、数据结构
定义: 数据结构:是相互之间存在一种或多种特定关系的 数据元素的集合
在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定的联系,也就是数据的组织形式。
总体来说,数据结构就是研究 数据的存储、数据的操作,以及数据间的关系的学科。
三、逻辑结构与物理结构
按照视点不同,我们把数据结构分为 逻辑结构和物理结构
1、 逻辑结构
逻辑结构:是指数据对象中 数据元素之间的相互关系。逻辑结构主要分成4种:集合结构、线性结构、树形结构、图形结构。
1) 集合结构:集合结构中的数据元素除了 同属一个集合外,它们之间没有其他关系,各个元素是“平等”的。数据结构中的集合结构类似于数学中的集合。
2) 线性结构:线性结构中的数据元素之间是 一对一的关系。一个数据元素(除开头元素)都有一个前驱,一个数据元素(除结尾元素)都有一个后继。
3) 树形结构:树形结构中的数据元素之间存在一种 一对多的层次关系。一个数据元素(除根节点元素)都有 一个前驱,一个数据元素(除叶节点元素)都有 多个后继
4) 图形结构:图形结构中的数据元素之间是 多对多的关系。一个数据元素(除特殊元素)都有一个或 多个前驱,一个数据元素(除特殊元素)都有一个或 多个后继
我们在画逻辑结构示意图时,要注意两点:
⒈将每个数据元素看做一个节点,用圆圈表示。
⒉元素之间的关系用节点间的连线表示,如果这个关系是有方向的,那么用带箭头的连线表示。
2、 物理结构(其他书籍也译为“存储结构”)
物理结构:是指数据的逻辑结构在计算机内存中的存储形式。
数据的物理结构要能正确地反应数据元素之间的逻辑关系,如何针对存储数据的逻辑结构构建其对应的正确的物理结构,是实现物理结构的重点和难点。
数据元素的物理结构主要有两种: 顺序存储、链式存储
//注:另外的 索引存储、散列存储等其他存储结构不做介绍
1)顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元中,其数据的逻辑关系和物理关系一致,即逻辑上的前驱后继关系对应存储结构也是前驱后继关系
我们在之前的C语言课程中,数组就是顺序存储结构。
2)链式存储结构(指针)
链式存储结构:是把数据元素存放在任意的存储单元里,这些存储单元可以是连续的,也可以是不连续的。数据元素之间需要使用指针来找到与其相关的数据元素的位置。

四、对数据的运算(操作)
数据结构中,对数据的基本操作主要有:
⒈插入:在指定位置插入新的数据
⒉删除:删除指定位置(或指定关键字)的数据
⒊排序:将数据按一定的关键字顺序进行排序使其有序
⒋查找:按指定关键字查找某项数据
⒌修改:修改某项数据
⒍遍历:按某种顺序访问数据结构中所有节点,每个节点能且仅能被访问一次。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值