数据结构是对在计算机内在中的数据的一种安排。数据结构包括数组、链表、栈、二叉树、哈希表等等。算法对这些结构中的数据进行各种处理。
上述知识可以用于下面三类情况:现实世界数据存储;程序的工具;建模。
现实世界数据存储
在这里讨论的许多数据结构和技术与如何处理现实世界数据存储问题紧密相连。现实世界数据指的是那些描述处于计算机外部的物理实体的数据。看几个例子:一条人事档案记录描述了一位真实人的信息,一条存货记录描述了一个真实存在的汽车部件或杂货店里的一种商品,一条财务交易记录描述了一笔支付电费实际填写的支票。
程序员的工具
并不是所有的存储结构都用来存储现实世界的数据。通常情况下,现实世界的数据或多或少会由程序的用户直接存取。但是有些数据存储结构并不打算让用户接触,它们仅被程序本身所使用。程序员经常将诸如栈、队列和优先级队列等结构当作工具来简化另一些操作。
现实世界的建模
有些数据结构能直接对真实世界的情况构造模型。其中最重要的数据结构是图。图可以用来表示城市之间的航线,电路中的连接,或是某一工程中的任务安排关系。其他诸如栈和队列等数据结构也会应用在事件模拟中。例如,一个队列可以模拟顾客在银行中排除等待的模型,还可以模拟汽车在收费站前等待交费的模型。
数据结构的概述
数据结构 优点 缺点
数组 插入快,如果知道下标,可以非常快地存取 查找慢,删除慢,大小固定
有序数组 比无序的数组查找快 删除和插入慢,大小固定
栈 提供后进先出方式的存取 存取其他项很慢
队列 提供先进先出方式的存取 存取其他项很慢
链表 插入快、删除快 查找慢
二叉权 查找、插入、删除都快(如果树保持平衡) 删除算法复杂
红-黑树 查找、插入、删除都快。权总是平衡的 算法复杂
2-3-4树 查找、插入、删除都快。树总是平衡的。类似的树对磁盘存储有用 算法复杂
哈希表 如果关键字已知则存取极快。插入快 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分
堆 插入、删除快,对最大数据项的存取很快 对其他数据项存取慢
图 对现实世界建模 有些算法慢且复杂
算法的概述
计算将要讨论到的算法直接适用于某些特殊的数据结构。对于大多数数据结构来说,都需要知道如何:插入一条新的数据项;寻找某一特定的数据项;删除某一特定的数据项。还需要知道如何迭代地访问某一数据结构中的各数据项,以便进行显示或其他操作。
另一种重要的算法范畴是排序,排序有许多种算法;递归的概念在设计某些算法时十分重要。递归意味着一个方法调用它自身。
一些定义
数据库:表示在某一特定情况下所有要查阅的数据,数据库中的第一条数据都被认为是同样格式的。
记录:指数据库中划分成的单元。它们为存储信息提供了一个结构格式。在索引卡片的模拟系统中,每一张卡片就代表一条记录。当有许多类似的实体时,一条记录包含了某一个实体的所有信息。
字段:一条记录经常被划分为几个字段。一个字段保存某一种特定的数据。更复杂的数据库程序使用带有更多字段的记录。一条记录,其中每一行代表了一个不同的字段。在Java语言中,记录经常被表示为一个相应类的对象。一个实例中各个变量表示不同的数据字段。在Java语言中一个类对象的字段被称为字段。
关键字:在数据库中查找一条记录,需要指定记录的某一个字段为关键字。通过这个特定的关键字来进行查找。当找到具有该关键字的记录时,便可以访问它的所有字段,而不仅仅是关键字了,可以说是关键字释放了整个记录。
过程性语言的问题
过程性语言有两类问题:一是程序与现实世界缺乏对应关系,二是程序内部的结构出现了问题。
小结
数据结构是指数据在计算机内存空间中或磁盘中的组织形式。
正确选择数据结构会使程序的效率大大提高。
数据结构的例子有数组、栈和链表。
算法是完成特定任务的过程。
在Java中,算法经常通过类的方法实现。
一些数据结构的用途是作为程序员的工具:它们帮助执行算法。
其他数据结构可以模拟现实世界中的情况。
数据库是指由许多类似的记录组成的数据存储的集合。
一条记录经常表示现实世界中的一个事物。
一条记录被分成字段。每个字段都存储了由这个记录所描述事物的一条特性。
一个关键字是一条记录中的一个字段,通过它可以对数据执行许多操作。
可以搜索数据库以便找到关键字字段有定值的所有记录,这个值被称为查找关键字。
分享到:
相关推荐
### Java数据结构和算法概述 #### 一、数组与简单排序 **数组**是一种基本的数据结构,用于存储相同类型的多个元素。在Java中,数组可以通过指定类型和大小来定义,如`int[] arr = new int[10];`。数组支持多维...
### Java数据结构与算法学习笔记知识点总结 #### 一、数据结构概述 数据结构是对数据的一种组织形式,它决定了数据的存储方式以及处理数据的方法。常见的数据结构包括但不限于数组、链表、栈、队列、二叉树、图等...
本文详细介绍了《Java数据结构与算法》的基础知识,包括Java语言概述、数据结构基础(如数组、链表、栈、队列和树)、算法基础(如排序和查找算法),以及如何在Java中实现这些数据结构和算法。通过这些基础知识的...
### Java 数据结构与算法概述 —— 初级篇 #### 数据结构与算法基础知识概览 本文档主要聚焦于初级水平的数据结构与算法的学习,适用于初学者掌握基础概念和技术要点。主要内容包括栈、队列、链表等基本数据结构...
Java数据结构和算法介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和队列、链表、...
综上所述,《Java数据结构与算法(第二版)》这本书主要介绍了数据结构和算法的基础知识及其在Java编程语言中的应用。通过对各种数据结构和算法的学习,读者可以更好地理解如何选择合适的数据结构来提高程序效率,并...
### Java数据结构与算法学习笔记知识点详解 #### 一、数据结构概述 ...总结而言,本学习笔记覆盖了Java数据结构和算法的基础知识,通过深入理解这些概念和技术,可以帮助开发者更加高效地处理数据并解决实际问题。
本笔记主要基于《Java数据结构和算法》(第二版)一书,概述了各种常见数据结构的特性及经典算法。 1. **数据结构的特性** - **数组**:提供了快速的存取能力,特别是如果知道下标时。但是,它的大小固定,插入和...
### Java数据结构与算法分析知识点概述 #### 一、引言 《Java数据结构与算法分析》这本书由Robert Lafore撰写,是一部深受好评的数据结构教材。本书不仅适合初学者了解和掌握基本的数据结构和算法概念,而且对于...
《Java数据结构和算法(第二版)》是一本深度探讨Java编程中数据结构与算法应用的书籍。在软件开发领域,理解和熟练运用数据结构与算法是提升程序性能、优化代码的关键。本书旨在帮助读者理解这些核心概念,并通过...
《Java数据结构与算法》不仅提供了丰富的理论知识,还通过大量的实例帮助读者更好地理解和掌握数据结构与算法的核心概念。此外,书中还配备了许多直观的图形来辅助解释复杂的概念,使得学习过程更加轻松愉快。对于...