学数据结构好用的参考教材
完整的ppt格式文档51黑下载地址:
数据结构资料.zip
(4.35 MB, 下载次数: 32)
数据结构讨论范畴:
那些不能用数学函数、公式、方程等描述的非数值性问题的求解。
举例:
图书检索系统 ---- 线性模型问题
棋类对弈 -------- 树状模型问题
地图染色 -------- 网状模型问题
算法与数据结构课程的研究内容:
软件设计中常用的基本技术
下面从采用计算机来解决实际问题的过程中所涉及到的各步骤中的相关技术来对此作一分析:
在用计算机解决实际问题时,
一般要经过以下几个步骤:
首先,对具体问题抽象出数学模型,
然后针对数学模型设计出求解算法,
选择或设计合适的存储结构存储相关数据,
最后编出程序上机调试,直至得到最终的解答。
下面简述各环节的有关内容。
问题求解之一:问题建模:
一般情况下,实际应用问题可能会各式各样,例如:
我们所熟悉的工资表的处理问题,学生成绩管理问题,
电话号码查询,数据加密、压缩问题等。
这些问题中,无论是所涉及到的数据,还是其操作要求,
都可能存在一定的差异。
尽管如此,许多问题间还是具有一定相似之处的。例如:
虽然工资表和学生成绩表的具体信息(栏目)不同,
但如果将两个表中的每个人的工资信息和成绩信息分别看作一个整体,则这两个表结构之间就有了某些共性。
从操作方面来看,虽然对这两种表的操作存在差异,
但也存在一些相同或相似的基本操作。
例如,查询一个人的工资信息和成绩信息,修改有关信息等。
正因为许多不同的问题之间存在着的某些共性,
可以将一个具体问题用这些共性的形式描述出来
-----问题建模。
问题建模通常包括:
所描述问题中的数据对象的集合;
对象间关系及其描述;
问题求解的要求及方法等。
建立问题模型的好处:
通过建立模型,就可以将一个具体的问题转换为所熟悉的模型,然后借助于这一模型来实现。
数据结构、离散数学及许多数学课程中就介绍了许多模型。例如:
要描述一个群体中个体之间的关系时,可以采用”数据结构”和”离散数学”中所介绍的图结构。
要描述一个工程内的关系或进展情况时,我们可以采用”数据结构”中所介绍的AOV网或AOE网等。
即使所建立的模型没有现成的求解方法,借助于已有的模型的适当组合也相对易于构造求解方法。
问题求解之二:构造求解算法
通过问题建模,将一个具体的问题转换成一个用模型所描述的抽象的问题。
借助于这一模型以及已有的知识
(例如数据结构中有关图结构的基本知识),
可以相对容易地描述出原问题的求解方法,即算法。
算法设计过程中可能会涉及到多种技术,
例如:递归、分治法等。
需要更多地实践。
从某种意义上说,该算法不仅能实现原问题的求解,
而且还可能实现许多类似的具体问题的求解,
尽管这些具体问题的背景及其描述形式可能存在较大的差异。
|