快3信誉网_【一】、什么是数据结构

  • 时间:
  • 浏览:2

前言

觉得说实话,大一刚来的另有俩个多就学了数据特性,当时学的数据特性是下面图片中的你这个本,不过说来惭愧,当时将会入门时C语言学的太菜,以至于开这门课的另有俩个多思维跟不上就抵触,我不要 解释,若果给当时人找借口,坦白说吧,若果没好好学,不过人非圣贤,孰能无过,人生难免会犯点错,及时改正还是个好孩子,而且,我决定把另有俩个多没学会的数据特性重新补回来。

对数据特性的理解

首先从定义上来说话语,好像对数据特性不能自己 你这个有俩个多统一的、标准的答案,我找了好几本书,挑了有俩个多我认为还计较好理解的定义:

数据特性是计算机中存储、组织数据的土妙招。通常状况下,精心选折 的数据特性都时需带来最优下行速率 的算法。

将会你没接触过数据特性,你就看定义能看懂吗?将会你能看懂,我很佩服你,我反正是不行,不过现在将会接触的东西比较多,听得多了,就看我不要 理解。我觉得对于新手,应该先让新手去理解,等有了当时人的理解另有俩个多再看官方定义话语,效果会比较好,反正我是不能自己 认为的。我用生活中的例子来解释你这个是数据特性吧:

举例:咋样在书架上摆放图书?也若果说,现在有其他书架,还有一堆图书,要我咋样把它们装入去书架上去呢?换言之说,有一堆数据,给了你其他存储空间,要我为什么我把你这个数据存起来呢?觉得你这个大疑问问的不科学,将会你我若果知道所谓的书架是长你这个样,将会是下面图片中的任意并不是。







全都你就知道了,当一群人我若果知道有俩个多数据为什么我组织的另有俩个多,觉得是跟你这个数据的规模有关系的。不一样规模的大疑问,它补救起来的难度就不一样。难在你这个地方呢?难没人了说要我把它为什么我放,而在于放你这个书是为了做事情用的,全都说图书的摆放觉得跟有俩个多操作直接相关:

操作一:新书为什么我插入

操作二:为什么我找到某本指定的书

土妙招一:我也我若果知道让让让我们让让让我们 是咋样考虑的,我第有俩个多感觉若果随便放,随便放有俩个多好处若果:新书为什么我插入,你这个操作是非常简单的,哪有空就放哪,最简单的土妙招若果把所有的书一本一本挨着放,全都呢,所有的新书哪里有空放哪里,So easy!放起来简单,但第八个操作为什么我办,咋样查找?那就会成为一件很恐怖的事……累死你!你这个另有俩个多累死呢,觉得将会若果有俩个多很小的书架,倒也累不死,但将会是上方第三张那样的书城,而且你想象,上方所有的图书不是随便放的,而且一群人我若果知道,你这个书城里有不能自己 某一本书,觉得那本书不能自己 ,但遇见你忘了有不能自己 ,那你为什么我能选折 它到底有不能自己 呢?你就只好从头到尾把每一本书都过一遍,而且我不要 叹一口气说……唉,不好意思,不能自己 这本书。

土妙招二:另有俩个多们有不能自己 稍微聪明其他的补救土妙招呢?若果咋样要我找书找的方便呢?第八个土妙招,若果按照书名的拼音字母顺序排放,有了你这个字母序另有俩个多,查找就方便多了。有俩个多最聪明的土妙招是二分查找你这个是二分查找:比如说现在有一长排的书装入去你肩头,而且让让让我们让让让我们 找一本叫《数据特性》的以S开头的书,另有俩个多先从你这个排的上方找一本书出来看它的书名的首字母,若果说是《离散数学》,以L开头的书,另有俩个多们知道,S在L的上方,全都《离散数学》前面的书要我我不要 管它了,我的查找范围缩小了一半,从L现在开始英文往后找,而且再找你这个半的上方,比如找到的一本书是《网络爬虫》,以W开头的,那S在L和W上方,《网络爬虫》上方的书要我我不要 管了,于是我的查找范围又缩小了一半,以此类推,要我每次都找,而且跟上方你这个比,变慢就会把范围缩小到一本书上,要我会知道这本书到底是有还是不能自己 。你这个土妙招比前面的土妙招聪明多了,它很好的补救了查找的大疑问。而且,大疑问又来了,新书来了为什么我插入呢?它就会成为新的令人头疼的大疑问。比如说,我新买了一本书叫《阿Q正传》,是以A开头的,呃……惨了,另有俩个多们得把几乎所有的书往后一本一本的错位,总是到前面留出有俩个多空挡,把新书装入去去,你这个似乎也很头疼。

土妙招三:那咋样找有俩个多两全其美的土妙招呢?让让让我们让让让我们 来想想,图书馆里是咋样来摆书的,让让让我们让让让我们 若果说去图书馆,找《数据特性》,要为什么我找,你不将会是从第一本现在开始英文找,若果将会是随便上方摸一本找,你进到图书馆里,第一件事情要找的是计算机类的书在哪里对不对?图书馆里的书通常是按照书的类别来分的,比如说让让让我们让让让我们 有社会科学类、文学类、艺术类、理科、工科等,而且工科下面将会能不能 分的再细其他,比如说让让让我们让让让我们 计算机类将会就分在工科的下面,你这个分法有你这个好处呢?把书架划分成几块区域,每快区域指定摆放并不是类别的图书,在每段类别内,按照书名的拼音字母顺序排放,另有俩个多不管我在每有俩个多类里做你这个样的操作,总归来说,图书的规模小了全都,跟整个图书馆的规模相比,我是某一类的,无论是查找还是插入,不是非常方便的。查找呢,若果在二分查找另有俩个多,让让让我们让让让我们 先定有俩个多类别,而且在有俩个多类的有俩个多小范围上方做二分查找,就都时需变慢的找到让让让我们让让让我们 要查找的书了。将会是插入,也是先定类别,用二分查找来选折 一下它应该被插在你这个位置,而且移空位这件事将会还是要做的,而且总归比让让让我们让让让我们 刚现在开始英文要移的书的数量少多了。

那现在大疑问又来了:

大疑问一:空间咋样分配?

大疑问二:类别应该分多细?

让让让我们让让让我们 分的各种类别的书,它的藏书量是不一样的,你是统一都给它分……还是每一类都几块个书架,另有俩个多分好吗?这也是有俩个多很头疼的大疑问,我不能自己了,你将会书架给多了,就会有其他空间始终空在那浪费着,你将会书架给小了,新书来的另有俩个多要不断地加新柜子,很讨厌。还有分类别要分多细的大疑问,要我是分的比较粗,不能自己 同一类上方的书就会有全都,那你的工作量还是会很大,若果想减少工作量,最好还是类别分的细其他,而且类别一分细,就会有副作用,类别不要 了,图书的量一多,也是麻烦。

说你这个大疑问是想说明:

补救大疑问土妙招的下行速率 ,跟数据的组织土妙招是直接相关的

另有俩个多这介绍数据特性的组织土妙招的另有俩个多,觉得有有俩个多概念:

、关于数据对象的逻辑特性比如说,让让让我们让让让我们 一现在开始英文把书架想象成简单的一长条,不能自己 一层的架子,而且所有的书是有俩个多有俩个多挨着放的,除了一头一尾的书以外,每一本书的前面和上方都只有一本书,将会每一本书不是有俩个多编号话语,不能自己 这有俩个多编号对应的若果一本书,不能自己 你这个特性是一对一的特性,让让让我们让让让我们 管它叫线性特性

另外并不是组织土妙招是上方说的第并不是土妙招,若果先把图书分类,将会我给每有俩个多类有俩个多编号话语,不能自己 这有俩个多类别的编号上方对应着全都本书,不能自己 这是有俩个多一对多的逻辑特性,你这个特性有个名字叫做

再说图书馆,假设让让让我们让让让我们 还统计另有俩个多其他信息:你这个本书不是你这当时人买过,买了这本书的人还买过其它的你这个书,于是呢,觉得是一本书对应着全都人,而有俩个多人又对应了全都本书,这是有俩个多多对多的、很复杂化的有俩个多关系网,不能自己 你这个关系网对应的逻辑特性叫叫做

、关于对象的物理存储特性除了逻辑特性之外,让让让我们让让让我们 还有数据对象再计算机上方的物理存储特性,也就遇见让让让我们让让让我们 说的你这个逻辑特性在机器的内存里到底要为什么我放,是连续放呢还是东有俩个多西有俩个多隔开放呢?也若果说用有俩个多数组来存它呢,还是用有俩个多链表来存它呢?你这个就属于物理存储特性。

此篇完

以上你这个若果我对数据特性的理解,要要我说全面了吧,若果没全面若果要紧,上方学了再继续补充。

就看有收获?不能自己 希望老铁别吝啬你的三连击哦1、点个推荐,让更多的人就看这篇文章2、关注我的原创微信公众号【泰斗贤若如】,第一时间阅读我的文章3、欢迎关注我的博客

 【原创声明】:当时人原创:https://www.cnblogs.com/zyx110/