数据结构基本概念

来源:互联网 发布:武汉茶港大院 知乎 编辑:程序博客网 时间:2024/06/18 15:26

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


数据可以是数值的,如整型,实型……。也可以是非数值的,如声音,图像视频等。


简而言之,数据其实就是符号(1,可以被输入到计算机。2,能被计算机程序处理。)


数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。数据元素顾名思义就是一组数据的元素,单个的个体。一个大类,分为许多的小元素类,如人类的数据元素就是人,水果类的元素有火龙果,芒果,葡萄等等好多类,而这些有共同特性的元素就组成了数据。



数据项:一个数据元素可以由若干个数据项组成。


用户定义一个系统,根据系统的需要,将数据元素再细分。

如人类的数据元素是人,在人这个元素中,每个人的年龄,出生年月,又是不一样的,又可以再继续划分。外貌项,可以根据眼睛,鼻子,嘴巴,眉毛等等来区分每一个人。身份项,可以根据年龄,性别,职位,联系方式来区分。



数据项是数据不可分割的最小单位。

但是由于数据项划分的比较细,所以一般不用数据项,因为我们在实际问题中,没有必要将一个数据划分的十分细小,这样反而不利于我们去解决问题。实际问题中,数据元素才是数据结构中建立数据模型的着眼点。例如我们在看电影的时候,关系的是每一个人物之间的关系和情节的发展,而不是重点关注每个人物的性别年龄身份,家庭地址的不重要的信息。


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


性质相同:指数据元素具有相同数量和类型的数据项。例如学生数据元素,每一个学生都有学号,班级,年龄,姓名这些共同的信息。


其实这几个名词都是包含的意思。而数据最重要的是数据结构,那么什么是数据的结构的,是不是和分子结构之类的结构是同样的意思呢?


在现实生活中,每个人是一个独立的个体,而人和人之间又有联系,比如亲戚关系,姐弟关系,同事关系,上下属关系,夫妻关系等等,我们将这些关系称为结构,如同一个个图网,每个人都可以由某些关系(结构)画出不同的关系(结构)图。那么数据结构是什么意思呢?

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

在计算机中,每一个元素与元素之间也是有联系的,他们并不是毫无关系的独立个体,数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。在编写代码是,一定要注重研究待处理对象的特性及各处理对象之间存在的关系。


结构:分为逻辑结构物理结构

逻辑结构:是指数据对象中数据元素之间的相互关系。(这是最后要研究的重点),逻辑结构分为四种:

1.集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有任何其他的关系,每个元素都是平等的,没有任何的牵制,就相当于大家生活在一起,都是这个地方的额住户,但是彼此之间都不认识,也没有任何别的来往交流。


2.线性结构:线性结构中的数据元素是一一对应的关系。呈现线性的直链。可以折叠,但是不能中断。


3.树形结构:树形结构中的数据元素之间存在一对多的关系。(层次概念,阶级关系)


4.图形结构:图形结构的数据元素是多对多的关系。每一个元素可以和同属这个集合中的任意一个其他元素有关系。


逻辑结构是针对具体问题的,在实际问题分析时根据实物而做出的结构图。



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

物理结构比较抽象化,他的重点在于数据的存储结构应正确反映数据元素之间的逻辑关系(如何将数据元素存储在计算机的存储器中)。如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。简单理解,物理结构是存储逻辑结构的方式。

物理结构分为:


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

有顺序,不能有空缺,根据所建立的空间安排每一个元素的位置。


2.链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可与是连续的,也可以是不连续的。一般情况下,用户的需求肯定不可能只是想要一个存储的不能更改的空间,他肯定希望能删除,能增加,在删除与增加的时候,前后又自动对齐,所以简单的顺序存储结构肯定是不能满足客户的需求。所以现实中解决问题时,都是使用的链式存储结构。在创建时,需要一个指针,这样只要找到了指针,就找到了这个元素,而元素本身就不需要任何的限制,只要保证在找的时候,指针是有效的。


小结:






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

在C语言中,按照取值的不同,数据类型可以分为两类:

1.原子类型:是不可以再分解的基本类型(整型,实型,字符型等。)

2:结构类型:由若干个类型组合而成,是可再分解的。(整型组,字符型组。类似于集合的概念。)


抽象数据类型(Abstract Data Type, ADT):指一个数字模型及定义在该模型上的一组操作。用户自己也可以定义一个抽象数据类型。


抽象数据类型的标准格式:

    ADT    抽象数据类型名

   Data

           数据元素之间逻辑关系的定义

   Operation

           操作1

                    初始条件

                    操作结果描述

           操作2

                  ……

           操作n

                 …… 

     endADT


抽象数据类型其实就是将一类问题的普遍本质提取出来,将问题抽象化为数学模型才是解决实际问题的关键。而抽象数据类型就是学习如何将问题建立为数学模型。一个抽象数据类型定义了:一个数据对象,数据对象中各个数据元素之间的关系及对数据元素的操作。

数据结构中,建模很重要,当拿到一个实际问题的时候,利用数学知识,将其抽象为数学问题是一个很漫长的思想过程。数据结构可能是计算机里边最复杂最难懂的一个学科,他重在思想,将一个个实际问题要抽象为计算机可以计算的问题,这需要很好的逻辑思维能力及抽象思维。而对于我一个计算机新手而言,刚刚开始的这几个名词定义,我都理解了好长时间,看来以后得日子恐怕不好过的,数据结构对于大多数人而言,都是比较有难度的,希望在今后的学习中,我能学到更多的新知识。










原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手动剃须刀使用方法图 飞利浦剃须刀型号解析 飞利浦剃须刀维修点查询 电动剃须刀什么牌子好 电动剃须刀可以托运吗 电动剃须刀可以托运 手动剃须刀什么牌子好 飞利浦剃须刀维修点 电动剃须刀能带上飞机吗 往复式剃须刀哪个牌子好 飞机可以带剃须刀吗 飞利浦剃须刀充电指示灯说明 米家剃须刀无法充电解决方法 手动剃须刀会越刮越粗么 超人剃须刀和飞科哪个好 飞利浦剃须刀充电指示灯 剃须刀哪个牌子的好 什么牌子的剃须刀好 什么牌子的剃须刀好用 什么样的剃须刀好用 飞利浦剃须刀价格表 男士剃须刀什么牌子好 飞利浦剃须刀哪个型号好 飞利浦剃须刀配件网上商城 飞利浦电动剃须刀价格 飞利浦剃须刀旗舰店 飞利浦哪款剃须刀好用 剃须刀手动好还是电动好 电动和手动剃须刀哪个好 手动和电动剃须刀哪个好 手动剃须刀好还是电动的好 手动剃须刀哪个牌子的好 电动剃须刀怎么清洗 剃须刀电动的好还是手动的好 日本剃须刀哪个牌子好 飞科剃须刀价格图片 飞利浦剃须刀刀头价格 飞科电动剃须刀价格 飞利浦哪款剃须刀性价比高 博朗和松下剃须刀哪个好 男人用什么剃须刀好