大榕树 \ Pascal语言 \ 算法与技巧
谈谈数据结构
原文链接:http://www.mydrs.org/program/list.asp?id=164
1 基础知识
数据结构是什么呢?可能知道的人比“什么是算法”更少。(是因为老师强调的少吗?)
下面我会详细的说说数据结构的。
简单的说,数据结构就是一类普通数据的表示及其相关操作。
注意,(如果需要我强调的话:-P ) 数据结构不仅包括“表示”,也包括“操作”。
编写程序的目的是解决问题。这是显然的,但是有些人习惯于选择一些喜欢使用的但是与问题不相称的
数据结构,设计出低效的程序。相反,当简单的设计就可以达到目标的时候也完全没有必要选择复杂的表示方法。
选择数据结构的一般步骤是:
1.分析问题以确定任何算法均会遇到的资源限制。
2.确定必须支持的基本运算,并度量每种运算所受到的资源限制。
3.选择最接近这些开销的数据结构。
基本运算包括:
插入(insert),删除(delete),查找(search)
2 基本数据结构
下面是一些常用而基本的数据结构:
1.线性表 2.栈 3.队列 4.二叉树 5.树 6.图 7.串
下面的数据结构在竞赛中也有应用:
1.广义表 2.矩阵 3.哈希表 4.堆和优先队列 5.Huffman树 6.集合 7.字典
另外也可了解下面的数据结构:
1.索引技术涉及到的,如2-3树,B树。
2.检索技术涉及到的:二叉检索树,如AVL树,红黑树
3.K叉树
4.空间数据结构,如PR四分树
大家来看一篇英文文章(PDF):Data Structures
数据结构是否真的那么有用呢?下面举一些典型的例子。
作者:SRbGa
来源:OIBH
时间:2001-08-09
大榕树 版权所有 ©1999-2006