什么是数据结构

   数据存储在计算机内存中,数据存储于内存时,决定了数据顺序和位置关系的就是“数据结构”。数据结构能决定数据的顺序和位置关系,选择合适的数据结构可以提供内存的利用率。

1、电话簿的数据结构-从上往下顺序添加

假设有1个电话簿,每当得到了新的电话号码就从上往下的顺序记录在电话簿上面。

姓名

电话号码

张三

15678934213

李四

15670934213

王五

15671934213

……

……

假设想给“小阳”打电话,但是因为数据都是按获取顺序排列的,所以我们并不知道“小阳”的号码具体在哪儿,只能从头一个一个网下找(虽说可以从后往前找或随机找,但是效率并不会比从上往下找高)。如果电话簿上号码不多很快就能找到,如果存了500个电话号码,那找起来就不太容易了。

2、电话簿的数据结构-按姓名的拼音顺序排列

因为数据都是以字典顺序排列的,所以它们是有“结构”的。

姓名

电话号码

东东

15678934213

李四

15670934213

王五

15671934213

……

……

   通过这种方式给联系人排序的话,想要找到目标人就轻松多了。通过姓名拼音的首字母就能大概推测出数据的大致位置。

如何往这个按拼音顺序排列的电话薄里面添加数据?

   假设需要将“萌萌”记录到电话薄中,由于数据按姓名的拼音顺序排列,所以需要将“萌萌”放到“李四”和“王五”的中间,将“王五”往下挪一行,然后清除本行内容,如果有500个操作,一次操作10秒,1小时也完成不了这项工作。

两种方法的优缺点

  • 数据按照获取顺序排列的话,虽然添加数据结构很简单,只需要把数据加到最后就可以了,但是查询的时候比较麻烦;以拼音顺序来排列的话,虽然查询比较简单,但是添加数据又会比较麻烦。
  • 这两种方法各有优缺点,具体要选择哪种取决于这个电话簿的用法。如果电话簿做好就不再添加新的号码,那么后者更好;如果需要经常添加新号码,但不怎么查询就应该选前者。

3、电话簿的数据结构-将获取顺序与拼音顺序结合

将1、2的优点结合起来。就是分别用不同的表存储不同的拼音首字母,比如表L、表D等。然后将同一张表中的数据按照获取顺序进行排列。

表L

姓名

电话号码

兰虎

15678934213

丽丽

15670934213

李强

15671934213

……

……

表D

姓名

电话号码

董超

15678934219

代阳

15670934210

丁香

15671934211

……

……

  • 这样添加新数据的时候直接将数据添加到对应表的末尾就可以了,而查询数据的时候只需要在对应的表中进行查找即可。
  • 因为各个表的存储数据依旧没有规律,所以查询的时候需要从表头开始查找,但比查询整个电话簿来说还是轻松不少。数据结构的思路就和制作电话簿一样。将数据存储与内存,根据使用目的选择合适的数据结构,能够提供内存的利用率。
posted @ 2021-02-28 17:44  Eleanor123  阅读(200)  评论(0编辑  收藏  举报