百摩网
当前位置: 首页 生活百科

数据类型及数据结构(数据结构是学习数据存储方式的一门学科)

时间:2023-07-02 作者: 小编 阅读量: 3 栏目名: 生活百科

例如,存储类似{1,3,5,7,9}这样的数据时,各元素依次排列,每个元素的前面和后边有且仅有一个元素与之相邻,因此可以使用线性表存储。线性表并不是一种具体的存储结构,它包含顺序存储结构和链式存储结构,是顺序表和链表的统称。栈中的元素只能从线性表的一端进出,且要遵循“先入后出”的原则,即先进栈的元素后出栈。树存储结构树存储结构适合存储具有“一对多”关系的数据。

数据类型及数据结构?数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?在这里将对数据结构的学习内容做一个简要的总结,下面我们就来聊聊关于数据类型及数据结构?接下来我们就一起去了解一下吧!

数据类型及数据结构

数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?在这里将对数据结构的学习内容做一个简要的总结。

C/C零基础交流学习群:569268376

数据结构大致包含以下几种存储结构:

线性表,还可细分为顺序表、链表、栈和队列;

树结构,包括普通树,二叉树,线索二叉树等;

图存储结构;

下面对各种数据结构做详细讲解。

线性表

线性表结构存储的数据往往是可以依次排列的,就像小朋友手拉手,每位学生的前面和后面都仅有一个小朋友和他拉手,具备这种“一对一”关系的数据就可以使用线性表来存储。

例如,存储类似 {1,3,5,7,9} 这样的数据时,各元素依次排列,每个元素的前面和后边有且仅有一个元素与之相邻(除首元素和尾元素),因此可以使用线性表存储。

线性表并不是一种具体的存储结构,它包含顺序存储结构和链式存储结构,是顺序表和链表的统称。

顺序表

顺序表,简单地理解,就是常用的数组,只是换了个名字而已,例如使用顺序表存储 {1,3,5,7,9},如图 1 所示:

图 1 顺序表结构

由于顺序表结构的底层实现借助的就是数组,因此对于初学者来说,可以把顺序表完全等价为数组,但实则不是这样。数据结构是研究数据存储方式的一门学科,它囊括的都是各种存储结构,而数组只是各种编程语言中的基本数据类型,并不属于数据结构的范畴。

链表

我们知道,使用顺序表(底层实现靠数组)时,需要提前申请一定大小的存储空间,这块存储空间的物理地址是连续的,如图 1 所示。

链表则完全不同,使用链表存储数据时,是随用随申请,因此数据的存储位置是相互分离的,换句话说,数据的存储位置是随机的。

为了给各个数据块建立“依次排列”的关系,链表给各数据块增设一个指针,每个数据块的指针都指向下一个数据块(最后一个数据块的指针指向 NULL),就如同一个个小学生都伸手去拉住下一个小学生的手,这样,看似毫无关系的数据块就建立了“依次排列”的关系,也就形成了链表,如图 2 所示:

图 2 链表结构

栈和队列

栈和队列隶属于线性表,是特殊的线性表,因为它们对线性表中元素的进出做了明确的要求。

栈中的元素只能从线性表的一端进出(另一端封死),且要遵循“先入后出”的原则,即先进栈的元素后出栈。

图 3 栈结构示意图

栈结构如图 3 所示,像一个木桶,栈中含有 3 个元素,分别是 A、B 和 C,从在栈中的状态可以看出 A 最先进的栈,然后 B 进栈,最后 C 进栈。根据“先进后出”的原则,3 个元素出栈的顺序应该是:C 最先出栈,然后 B 出栈,最后才是 A 出栈。

队列中的元素只能从线性表的一端进,从另一端出,且要遵循“先入先出”的特点,即先进队列的元素也要先出队列。

图 4 队列结构示意图

队列结构如图 4 所示,队列中有 3 个元素,分别是 A、B 和 C,从在队列中的状态可以看出是 A 先进队列,然后 B 进,最后 C 进。根据“先进先出”的原则,3 个元素出队列的顺序应该是 A 最先出队列,然后 B 出,最后 C 出。

树存储结构

树存储结构适合存储具有“一对多”关系的数据。

图 5 家庭族谱

如图 5 所示,其中张平只有一个父亲,但他却有两(多)个孩子,这就是“一对多”的关系,满足这种关系的数据可以使用树存储结构。

图存储结构

图存储结构适合存储具有“多对多”关系的数据。

图 6 图存储结构示意图

如图 6 所示,从 V1 可以到达 V2、V3、V4,同样,从 V2、V3、V4 也可以到达 V1,这就是“多对多”的关系,满足这种关系的数据可以使用图存储结构。

注意:本文只是对数据结构中包含的各种存储结构做一个简要的介绍,各存储结构具体的实现会在后续文章中作详解介绍。欢迎持续关注

    推荐阅读
  • 猫咪有口臭是怎么办(救命猫咪有口臭)

    牙结石一般是由牙斑菌和食物残渣造成的。牙结石的形成主要原因就是牙斑菌,由于牙斑菌长期附着后逐渐钙化,形成了肉眼可以观察到的牙结石。牙结石形成后主人很难处理,需要去宠物医院进行洗牙才能完全清除。因此,在牙结石形成前清理牙斑菌,防止牙斑菌钙化成牙结石,是主人们保证猫咪口腔健康的大前提。

  • 2022年江苏高考志愿填报及录取时间安排一览

    强基计划、综合评价招生等类型的录取,安排在本科提前批次投档前完成。

  • 20个不要轻易相信的话(有些话千万不要乱说)

    乱说话遭遇“鬼打墙”几年前,我认识的一个客户给我讲了一段他的亲身经历:他们公司在北京十三陵附近的一个度假村召开公司年会,会期三天。他们这才意识到遇上“鬼打墙”了。谁也没想到的是,这句话就在一个月后应验了,卢全伟在回家的路上遭遇了车祸。关于“谶语”为什么会应验,也可以用易经的原理来说明。的时候,其实已经把自己置于一个很危险的境地了。

  • 好像有很多人不发朋友圈了(你连朋友圈都不发)

    年少不经世事时,不会顾及他人的感受随便发朋友圈,说实话挺好的,没心没肺活着不累嘛。但你一定也不要把朋友圈“装饰”的太好,千万不要金玉其外败絮其中。“你连朋友圈都不发,一定过的很惨吧”不过是调侃罢了,朋友圈的一切都可以去装饰。在装修好点的餐厅吃顿饭,朋友圈可以变成私人订制的高端会所。所以你不必因为别人“优质生活的朋友圈”而感到焦虑或羡慕。

  • 葡萄螨害的特点,防控措施有什么(葡萄螨虫危害)

    葡萄是一种常见的水果,在许多地区都有种植。但是葡萄上的一种害虫给种植者带来了很大的麻烦,那就是螨虫。它不仅对葡萄的新梢、叶柄、叶片、果梗、穗梗和果实有害,而且对其他植物也有很大的危害。葡萄螨害的特性1、种群少,数量多,繁殖速度快,受害点分布不规则。事实上,在一般设施中,葡萄螨虫可以每三年预防一次。开放的葡萄取决于周围是否有主人。

  • 陈子昂什么时候写的登幽州台歌(陈子昂在这里登上幽州台)

    北京大兴区是北京市下属的一个区,位于北京市南部,新城北距市中心13公里,是距离北京市区最近的郊区。北京大兴区还有一个著名的建筑叫幽州台,就是当年陈子昂作《登幽州台歌》的地方。北京大兴区陈子昂曾两次出塞,盼望为国戍边。然而,陈子昂的计谋不为武攸宜所用,甚至被降为军曹。幽州台是战国时代燕国都城蓟城北部的门楼,为燕昭王所建,又叫做黄金台、贤士台。公元前311年,燕昭王在残缺不堪的局面中即位。

  • 青年教师的培养与成长(留住青年教师要设身处地留心留人)

    青年教师的培养与成长据媒体报道,重庆市南川区青年教师协会尽管去年才成立,但经过一年多时间,目前已促成38名青年教师走进婚姻的殿堂。除了组织联谊和兴趣小组活动之外,南川区青年教师协会还组织各乡镇学校在南川城区相对集中的地方统一租房,让单身青年教师能回到城区过周末,也便于他们参加协会的各项活动。

  • 微信内测版是怎么回事(微信内测版修复了令人)

    微信内测版是怎么回事日前,部分网友发现,微信安卓平台迎来了8.0.16内测版更新。在之前的微信8.0.14版本中,拨打语音通话界面中会自动轮番展示对方的最近三天朋友圈内容,不少网友称之为“社死功能”。不过也有网友更新内测版后发现,“语音通话显示朋友圈”功能直接不见了,目前不确定是否在逐渐下线中。上述新功能目前在测试中,有望在正式版中添加。

  • 老师是国家的什么(什么是老师)

    1986年,4人从亲戚朋友那里凑齐6万元钱,成立了涟源茅塘焊接材料厂。熬过了若干个不眠之夜后,想到了自己在大学的老师翟登科教授。他即刻回到母校,请恩师翟教授来现场指导。之后,涟源茅塘焊接材料厂便依托105铜基焊料生产技术一路过关斩将,发展成为今天工程机械行业的巨头-股份有限公司。遗憾的是翟登科,这位从创业起就一直帮助的中南工大教授,已于2002年3月去世,未能共享三一今日的辉煌。

  • 激励自己强大的文案(激励自己的文案)

    3、只要有心,生活会开花的。33、一直在原地,麻的不是脚,是脑子!