数据结构作用

来源:互联网 发布:win7 32位安装java 编辑:程序博客网 时间:2024/04/27 17:01

    数据结构是对在计算机内存中(有时在磁盘中)的数据的安排。数据结构包括数组、链表、栈、二又树、哈希表等等。算法对这些结构中的数据进行各种处理,例如,想找一条特殊的数据项或对数据进行排序 掌握这些知识以后可以解决哪些问题呢?

粗略地估计一下,上述知识可以用于三类情况:     .  现实世界数据存储    .  程序员的工具    .  建模    这些并不是必须遵循的分类讨论一下这些问题。

现实世界数据存储    在这里讨论的许多数据结构和技术与如何处理现实世界数据存储问题紧密相连。现实世界数据指的是那些描述处于计算机外部的物理实体的数据。看几个例子:一条人事档案记录描述了一位真实人的信息,一条存贷记录描述了一个真实存在的汽车部件或杂货店里的一种商品,一条财务交易记录描述了一笔支付电费实际填写的支票。    举一个非计算机的现实世界数据存储的例子,有一叠3×5的索引卡片。这些卡片可以破用在不同的场合。如果每张卡上写有某人的姓名、地址利电话号码,那么这叠卡片一定是一本地址簿。如果每一张卡片上写有家庭拥有物的名称、位置和价值,那么这一定是一本家庭财产清单。   当然,索引卡计并不能代表现在的科技发展水平。几乎所有以前用索引卡片处理的事务现在都可以用计算机来处理。

如果想将旧式的索引卡片系统更新为计算机程序,便有可能发现会被如下问题所闻扰;     .  如何在计算机内存中存放数据  .  所用方法适用于100张产片吗?那l000张呢?1000000张呢.  所用方法能够快速地插入新卡片和删除老卡片.  它能快速地查找一张特定的长片吗.  若想将卡片按照字目的顺序排列,又应该如何去排呢?

这里将会讨论类似于一叠索引卡片这种形式的数据结构。    然而,人多数程序比索引卡片要复杂得多。想像一下机动车管理局的数据库,这个库被用来记录驾驶员的执照的情况;或者看一个航班预订系统,这个系统存储了旅客和航班的各种信息。这些系统由许多数据结构组成,设计这些复杂的系统还需要应用软件工程的技术,这一点在结尾将会谈到。

    程序员的工具    并不是所有的存储结构都用来存储现实世界的数据。通常情况下,现实世界的数据或多或少会由程序的用户直按存取。但是有些数据存储结构并不打算让用户按触,它们仅被程序本身使用。程序员经常将诸如栈、队列和优先级队列等结构当作工具来简化另一些操作。随着讨论的深入,我们将要见到这样的例了。 

 现实世界的建模
  有些数据结构能直接对真实世界的情况构造模型。其中最重要的数据结构是图。图可以用来表
示城市之间的航线,电路中的连接,或是某一工程中的任务安排关系。以后将详细介绍图的问题。其他诸如栈和队列等数据结构也会应用在事件模拟中。例如,—个队列可以模拟顾客在银行中持队等待的模型,还可以模拟汽车在收费站前等待交费的模型。