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

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

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

例如,存储类似{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,这就是“多对多”的关系,满足这种关系的数据可以使用图存储结构。

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

    推荐阅读
  • pdf转换成可以编辑的word(一款实用型办公软件)

    好久没给大家做更新了,今天给大家更新一个非常实用的工具,万彩办公大师OfficeBox,它里面包含了非常多的办公功能,如PDF工具集,格式转换工具集,图片处理工具集,OCR识别工具集,屏幕录制工具集,更多办公小工具,办公资源集合,办公网址导航等等。

  • 白兰花(白兰花的养殖方法和注意事项)

    白兰花(白兰)的形态特征白兰生长最高可达约17米,盆栽的高一般为3-4米。白兰花(白兰)的价值用途观赏价值:白兰花作为观赏花卉,植株直立挺拔,并且有整齐美观的分枝。白兰花本本身香味浓厚,泡制的茶品也是滋味香醇,色泽鲜润明亮,品相和口感都不错。白兰花(白兰)的花语白兰花的花语是“纯洁无暇的爱和真挚无比的情谊”。

  • 炒螺需要焯水吗(炒螺要不要焯水)

    炒螺最好不要焯水因为焯水会导致田螺的肉质变老,失去口感平时我们在制作的时候只需要直接将新鲜的田螺清晰干净、处理好,再加上配料,就可以直接烹饪了,今天小编就来聊一聊关于炒螺需要焯水吗?接下来我们就一起去研究一下吧!炒螺需要焯水吗炒螺最好不要焯水。我们在做的时候只需要将田螺清洗干净,做好处理,然后就可以加入配料直接炒了,怕腥味可以烹饪的时候倒适量的啤酒。

  • 上升星座怎么算(射手座上升星座怎么算)

    其中上升星座就是最重要的参考之一。它代表着日常的言行举止、性向、癖好、外在的容貌、风格、体质等较个人的影响,而且上升星座的特质往往在我们的潜意识中渗透。在个人命盘中上升星座的标志是“Asc”。

  • 华为5g手机哪个性能最低(什么是真正适配5G时代的双模手机)

    7月3日,华为终端生产线总裁何刚在微博透露华为5G双模手机支持SA/NSA两种5G组网方式,并搭载了7nm的巴龙5000芯片,还支持5G/4G双卡双待。同时为了让大家更好地了解华为5G双模手机,何刚配上一组图片,更加直观的向大家解释了什么才是真正适配5G时代的华为5G双模手机。SA是“独立组网”的5G网络模式,它不仅支持4G基站和5G基站,而且能对两个基站的需求进行精细化处理,是未来的趋势。

  • 诗鬼诗圣诗仙诗豪是谁(诗仙诗鬼易安居士)

    我国诗人灿若星辰,有的诗人有许多别号或别称,今天,盘点下诗人的别号和别称。对艺术如此的疯狂和痴迷,不愧“诗魔”称号。而且孟郊的作品,也多写一些世态炎凉,民间苦难,所以被称为“诗囚”。

  • 储存饼的方法(做好的饼如何保存)

    因此保存的时候注意敞口晾凉,不然皮会变软。用硬纸盒装就行,结实为准。尽量放干燥阴凉处。如果存放20几个小时,一般情况下不会有问题的。建议放冰箱冷藏的情况下,2到3天时间即可,若是存放时间再过于长的话,出于健康考虑最好不要再吃了。

  • iphone12和se3怎么选(买iPhoneSE3还是12线下店老板的建议很中肯)

    不过某些网友却比较纠结,因为iPhone12的价格也是跌至新低了,在某些电商平台,标准版仅需4209元,128GB版本也只要4699元左右。因为某些网友提出了这样的疑问:省钱买iPhoneSE3还是加价买iPhone12?陈老板幽默地回答道。我们基本可以确定,iPhoneSE3、iPhone12、iPhone12mini都是不错的产品,选择哪一款,取决于你的需求。

  • 有没有治不好的猫癣(一例猫癣病例的诊治)

    一例猫癣病例的诊治摘要:皮癣菌是猫最常见的皮肤病,大多数发病群体为品种猫,近年来在许多家猫身上亦有不少品种猫中短毛猫则以英国短毛猫、异国短毛猫居多,大多数长毛猫为携带及传染者但不一定发病一般家猫短毛品种则多数为局灶性病。

  • 塘鲺鱼为什么不能吃(塘鲺鱼为啥不能吃)

    塘鲺鱼为什么不能吃最主要还是由于很多人都觉得它的生长环境实在是太脏了,可能里面会有一些不是很好的成分。塘鲺鱼可能很多人都没有听说过,其实这种是属于很常见的鱼类,如今分布在我们国家的南方区域。如果是本地的塘鲺鱼,它的颜色有些黄,通常都是属于野生的,个体不是很大,最大的大概是在一斤左右。如果是埃及塘鲺鱼,这种身体是黑色的,一般都是人工养殖,个体比较大。