论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
摘 要 本课程设计主要解决图的搜索实现,通过图的邻接矩阵实现深度优先搜索和广度优先搜索。图是一种较线形表和树更复杂的数据结构,其应用极为广泛,目前已渗入到语言学,逻辑学,物理,化学以及计算机科学等诸多领域中。在本课程设计中,系统开发平台为Windows xp,程序设计设计语言主要采用C语言,程序运行平台为Windows 2000/XP。程序开始后,通过输入各结点与边的相关数据,可以得出相应的深度优先和广度优先搜索结果。
关键词 程序设计;C语言;图的邻接矩阵;图的深度优先搜索、广度优先搜索
1 引 言
图是一种较复杂的数据结构,图的搜索在图书索引,城市道路建设,人工智能等领域中发挥着重要作用。图的搜索有深度优先搜索和广度优先搜索,我们可以通过图的邻接矩阵或邻接表实现图的这两种搜索。
本次程序设计我们通过C语言编写程序实现图的搜索。在编写过程中我们将图定义为邻接矩阵类型,通过深度优先搜索遍历和广度优先搜索遍历分别实现图的搜索。
我们学习两年的有关C语言和数据结构的相关知识,而课程设计是将我们把所学的理论和生产实践相结合的重要环节, 通过这次课程设计,可以使我们所学的专业技能得到巩固、扩大、深入和系统化;培养综合运用所学知识解决图的搜索的能力,初步掌握数据结构程序设计的方法和步骤;使我们进一步提高编写程序的效率;提高我们独立钻研问题的能力,培养严肃认真,实事求是,刻苦钻研的工作作风。
2 开发工具介绍
C 语言是1972年由美国的Dennis Ritchie设计发明的, 并首次在UNIX操作系统DEC PDP-11 计算机上使用。 它由早期的编程语言 BCPL( Basic Combind Programming Language) 发展演变而来。在1970年, AT&T 贝尔实验室的 Ken Thompson根据BCPL语言设计出较先进的并取名为 B的语言, 最后导了C 语言的问世。 随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准, 使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况, 美国研究所(ANSI)为C 语言制定了一套ANSI标准,成为现行的C语言标准。 (科教作文网 zw.nseac.com整理)
C语言具有强大的功能,它具有以下特点:
1. C是中级语言
它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. C是结构式语言
结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C
语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。
3. C语言功能齐全
C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能,
支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。
4. C语言适用范围大
C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
3 相关知识
图的概念:图是一种较线形表和树更复杂的数据结构,是一种数据元素间为多对多关系的数据结构,加上一组基本操作构成的抽象数据类型,图作为一种非线性数据结构,被广泛应用于多个技术领域,诸如系统工程、化学分析、统计力学、遗传学、控制论、计算机的人工智能、编译系统等领域。
图的基本操作:创建、插入、删除、查找等。
图的几种存储结构类型:图的邻接矩阵表示法,图的邻接表表示法
(转载自科教范文网http://fw.nseac.com)
4 程序的设计与实现
4.1 程序相关算法伪代码[3]
图的深度优先搜索算法伪代码:
DFS(v)//访问由v到达的所有顶点
1. Visited(v)=1;
2. for邻接于v的每个顶点w do
3. if Visited(w)=0 then
4. DFS(w);
5. endif
6. endfor
7.end DFS