- 10
- 0
- 约4.27千字
- 约 10页
- 2018-11-16 发布于福建
- 举报
数据结构简述
数据结构简述
摘要:数据结构对于计算机、应用数学及各类工程领域具有非常重要的作用。然而初学者在刚接触数据结构时往往会忽视其重要性,认为还不如学个C或者Java来的直接一点。本文针对学习过程中学生对数据结构的不理解和不重视,本文首先简单形象的介绍了数据结构的定义及分类,接着具体对三种常用的已实现的数据结构进行了介绍及适用范围的分析,最后阐述了数据结构的重要意义和对未来的展望。
关键词:数据结构;算法;适用
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2017)10-0218-02
1 数据结构的定义
1.1 数据元素
数据元素是组成数据的基本单位,可以由多个用于表示其属性的数据项组成,数据项是处理数据时的最小单位。在化学中,原子是由质子和中子构成的,然而尽管质子和中子在尺度上更小,但原子才是研究问题时的的最小单位,因为原子是保持物质化学性质的最小的单位,就算分子也是由原子构成的。同样的道理,数据元素就好比原子,数据项就好比质子和中子,数据项必须由多个组合在一起才是一个完整的、有意义的数据元素,所以我们在处理数据时,通常不会从数据项处理起,而是对数据元素这一整体进行分析。
1.2 数据结构
1.2.1 逻辑数据结构
当多个数据元素相互之间存在某种特定联系,把这些数据元素抽象成一个集合,便形成了一种逻辑数据结构。形象的来说,数据元素就像是一个个结点,一块块砖头,一条条钢筋。当多个数据元素以特定的关系组合后,就形成了一种特殊的建筑,这种建筑就是逻辑数据结构。当我们发现某种数据结构在解决某一类问题时具有很高的效率时,我们就把这种逻辑数据结构抽象出来,再命名,单独开辟封装出一种抽象数据类型。
1.2.2 物理数据结构
那么,是否数据元素真的像逻辑数据结构那样在电脑里有着纷繁复杂的存储方式呢?其实电脑才不会那么聪明,数据元素在电脑里存储的方式叫做物理数据结构也叫存储结构,再多的数据元素对于电脑只会有两种结构,一种顺序存储结构(存储数据元素的地址是连续的),一种链式存储结构(存储数据元素的地址是任意的,需要指针串起所有数据元素)。物理数据结构面向的是计算机。而逻辑数据结构是一种便于人们理解,处理问题的结构,实际并不是那样存储在电脑里,其面向的更多在于程序员和问题本身。但我们在处理问题时,由于有编译器的存在,我们并不需要过于纠结于计算机该怎样存储,而是去分析问题,解决问题。所以后文所说的数据结构,不特别声明,都指的是逻辑数据结构。
1.3 数据结构分类
数据结构主要分为四大类:(1)集合结构:每个数据元素之间没有联系,只是同属于一个集合,和数学上的集合定义很相似;(2)线性结构:数据元素间存在一一对应关系,就像一条线一样串被在一起。如栈、队列和线性表都属于线性结构;(3)树形结构:数据元素间存在一对多的关系,犹如树根,不断生长,分叉,再生长,再分叉;(4)图形结构:数据元素间存在多对一,一对多的关系,犹如地图上的每个地点,相互之间有密密麻麻的交通干道连接,从A点出发可以到很多地方,想回到A也有很多条路。
2 主要数据结构的适用范围
2.1 链表
链表也是一种更常用的数据结构,每个数据元素在存储时候都会有一个地址,就是说,电脑把这个数据元素放在了什么地方。而链表的数据元素不像数组里的那样,只需要把自身的信息存储好就行了,他还需要存储一个指向下一个数据元素所在地址的箭头(指针)。这就好比小时候老师给小朋友排队,害怕小朋友走丢,就让小朋友都记得自己后面是谁,这样整个队伍就仿佛被串起来了(当然,这和链表还有一定的区别)。这样的话,我们只要找到了链表的第一个数据元素的地址,我们就可以找到整个链表。链表非常适合进行插入和删除操作,我们只需要更改前一个数据的指针和被插入数据的指针,非常的简便快捷。而如果相同操作让数组去做,数组首先判断数组是否溢出,再把插入位置及其之后所有元素全部先后推一个地址,再插入,非常的繁琐,两者时间复杂度相差一个次数级,如果?M行多次插入,链表会非常的方便和快捷,而且链表占据的空间也不像数组那样需要提前申请并且有大小限制,而链表的占的空间就非常灵活,大小变换起来较为方便。
2.2 栈
栈是一种常用的数据结构,他的特点是“先入后出”,只允许在队尾进行操作。这就好比你挖了个洞,你往里面不断扔东西,你每次扔的只能在最上面,你若想取出最底下,也就是你最先放进去的那个东西,那么你必须把他上面所有的东西先取出来。那个洞就是我们的栈,而每个数据元素就相当于我们的东西。 除了这一基本特点,还有栈链、两栈共享空间等更高级、更特殊的用法。这一数据结构适用于当我们需要记录我们之前每一步做了什么之类操作的时候,比如我们wor
您可能关注的文档
最近下载
- 考生面試确认单及相关样本.doc VIP
- 西藏发现西藏中游河谷植被.docx VIP
- 江西省卫生高职级称评审医学杂志分级汇总表试行.doc VIP
- S7-1200 PLC编程及应用技术课件-S7-1200 PLC对步进驱动系统的速度控制.pptx VIP
- nex-6使用说明书手册.pdf
- GBT 50358-2017 建设项目工程总承包管理规范.pdf VIP
- 项目三认识老年人活动策划和组织.ppt VIP
- 《发现西藏》-来源:西藏人文地理(第2020005期)-《西藏人文地理》杂志社.pdf VIP
- 马工程教学课件《管理学》(第二版)第二章 管理理论的历史演变.pptx VIP
- 2023年香港亚洲国际数学奥林匹克公开赛(AIMO)竞赛决赛数学试卷.doc VIP
原创力文档

文档评论(0)