理解数据结构

来源:互联网 发布:parrot无人机软件下载 编辑:程序博客网 时间:2024/06/14 03:56

数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间关系操作等学科。它包括以下内容:


基本概念和术语:

数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。它是计算机程序加工的“原料”。例如,一个利用数值分析方法解代数方程的程序中,其处理对象时整数和实数;一个编译程序或文字处理程序的处理对象是字符串。因此,对计算机科学而言,数据的含义及其广泛,如图像、声音等都可以通过编码二归之为数据的范畴。

数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑处理。有时,数据元素可由若干个数据项组成。数据项是数据不可分割的最小单位。

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

一种简单的解释是,数据结构是相互之间存在一种或者多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,而是他们之间存在某种关系,这种数据元素之间的关系称为结构。根据数据元素之间关系的不同特性,通常有下列4种结构:

(1)集合:结构中的数据元素之间除了“同属一个集合"的关系外,别无其他关系

(2)线性结构:结构中的数据元素之间存在一个对一个的关系

(3)树形结构:结构中的数据元素之间存在一个对多个的关系

(4)图状结构或者网状结构:结构中的数据元素之间存在多个对多个的关系。

数据结构的形式定义为:数据结构是一个二元组

Data_Structure=(D,S),其中D是数据元素的有限集,S是D上关系的有限集。

这种定义仅仅是对操作对象的一种数学描述,是从操作对象抽象出来的数据模型。我们还需要学习在计算机中实现对它的操作,即需要学习如何在计算中表示它。

数据结构在计算机中的表示需要包括数据元素的表示数据关系的表示。一般数据元素用二进制来表示,而数据元素之间的关系可通过顺序映像非顺序映像两种表示方法,对应顺序存储结构链式存储结构。简单来理解,顺序存储结构逻辑地址和物理地址一致,而链式存储结构一般通过指针实现。

 描述数据结构的存储结构,可忽略计算机底层细节,即在存储器的物理位置如何表示数据元素及其关系。所以可借助于高级程序设计语言中”数据类型“来描述数据结构,比如可以用C语言中的”一维数组“类型来描述顺序存储结构,以”指针“来描述链式存储结构。

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。例如,C语言中的整型变量,其值为某个区间的整数,定义在其上的操作为加、减、乘、除和取模等算术运算。

高级程序设计语言提供的数据类型,其操作需要通过编译器或者解释器转化为底层,即汇编语言或者机器语言的数据类型来实现。引入”数据类型“的目的,从硬件角度看,是作为解释计算机内存中信息含义的一种手段,而对使用数据类型的用户来说,实现了信息的屏蔽,即将一切用户不必了解的细节都封装在类型中。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 赴美生子父母一方是绿卡怎么办 农保报销需要居住证过期了怎么办 有上海户口但没有户口本怎么办护照 签证用的旧护照丢失了英签怎么办 买的动迁房房东不肯过户怎么办 身份信息在qq邮箱泄露了怎么办 别人用我的身份证贷款不还怎么办 做兼职被骗了身份证泄露了怎么办 qq绑定的手机号被别人换了怎么办 银行卡丢失不知道卡号和密码怎么办 美团景点门票过了退款期怎么办 我的手机汽车之家无法看视频怎么办 来事泡温泉细菌感染外阴瘙痒怎么办 西澳大学语言班没通过怎么办 银行入职培训理论考试不合格怎么办 去泰国旅游不会泰语和英语的怎么办 老板不发工资怎么办没签合同的 3d模型导进去材质丢失怎么办 七日杀显示载入中之后进不去怎么办 进京证过期了车在北京怎么办 微信打字时剪切的东西丢了怎么办 错过了医师定期考核报名时间怎么办 大学档案在自己手里放多年怎么办 档案在自己手里10年了怎么办 快递地址区域划分写错了怎么办 怀孕八个月肛门长个肉疙瘩怎么办呢 客户签了合同不要货了怎么办 不喂母乳宝宝只认识保姆了怎么办? 开创者比赛后没有买的鸽子怎么办 买回来小鸽子开家我敢了怎么办 小鸽子出壳后母鸽就不孵了怎么办 狗狗在笼子里一直叫怎么办 养了一年母鸽子不配对怎么办 血管翳云翳斑翳长满眼睛怎么办 鸽子训放50公里突然下雨了怎么办 安卓手机反应慢又卡怎么办 tcl安卓系统电视反应慢怎么办 狼人杀警长竞选一直平票怎么办 去驾校投诉教练被教练报复怎么办 哈尔滨机场大巴六点的飞机怎么办 山东德州恩城镇的农民怎么办养老险