首页 > 代码库 > 数据结构概述<1>
数据结构概述<1>
一 数据结构的定义
在严蔚敏老师的《数据结构》一书中,是这么定义数据结构的:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在很多实际问题中,数据元素并非孤立存在,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构。根据数据元素之间关系的不同特性,通常分为4类,分别为集合、线性结构、树形结构和图状结构。
二 动态集合
在《算法导论》一书里,将所有的数据结构描述为动态集合。即我们使用所有的这些数据结构,都是为了对集合中的元素进行一些简单或者复杂的操作,比如查找、插入、删除等等,从而能有效地对一些数据进行很好的管理。任何具体的应用通常只需要几种操作就能实现所有想要实现的功能。
(1)查找 即在集合中找到一个特定的元素。
(2)插入 将某一个数据加入到集合中
(3)删除 将某一特定的数据从集合中删除
(4)最小值 查找集合中的最小元素,并且一般会返回指向该元素的指针
(5)最大值 查找集合中的最大元素,并且一般会返回指向该元素的指针
(6)后继 查找集合中比指定元素大的下一个元素,并返回指向该元素的指针。如果该指定元素为最大值,则返回空。
(7)前驱 查找集合中比指定元素小的前一个元素,并返回指向该元素的指针。如果该指定元素为最小值,则返回空。
在实际应用中,通常只需要其中的某几个功能即可。
个人认为,一个算法的好坏往往决定了一个程序的质量,而算法又往往需要通过数据结构来实现,因此,掌握一些常用的数据结构,是十分有必要的。
接下来我会介绍栈、队列、链表、散列表、二叉搜索树、红黑树等。内容主要涉及概念、C语言实现以及一些简单的应用,后面会陆续更新的。
数据结构概述<1>