- 30.11 KB
- 29页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观数据结构毕业设计篇一:数据结构C+,毕业论文 编号:1XX1XX7 南阳师范学院XX届毕业生 毕业论文(设计) 题目:完成人:班级: 学制:2年 专业:计算机科学与技术 指导教师:完成日期: 目录 摘要...................................................(1)0引言..................................................(1)1数据结构..............................................(2) 1.1为什么要学习数据结构........................................(2) 1.2学习数据结构作用和意义......................................(2) 1.3数据结构课程学习中的知识体系................................(3)紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 1.4数据结构课程在传统教学的弊端................................(4) 1.5数据结构在传统教学弊端产生的原因............................(5)2C++程序设计..........................................(5) 2.1C++程序设计课程的性质和作用.................................(6) 2.2C++程序设计课程的教学中存在的弊端...........................(6)3C++程序设计与数据结构的整合...........................(7) 3.1课程整合的必要性和可行性....................................(7) 3.2C++与数据结构课程存在的关系.................................(8) 3.3课程整合思路................................................(8) 3.4C++程序设计与数据结构课程整合方法...........................(9) 3.4.1掌握基础概念,分类学习..................................(9) 3.4.2紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观进行算法汇总,形成公式.................................(10) 3.5课程整合后实践教学的设计思想...............................(10)4课程整合的教学方法与手段的探讨.......................(11)5总结.................................................(11)参考文献..............................................(12)Abstract..............................................(12) 数据结构与C++课程整合的研究 作者:李继伟 指导教师:郭金良紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 摘要:《数据结构》和《C++程序设计》是计算机专业的两门重要的专业基础课,数据结构在计算机教学中理论性非常强,该课程以问题求解为导向,贯穿数据结构理论、抽象和设计的三个形态,强调围绕抽象数据类型(ADT)的有效表述建立数据结构的逻辑结构、存储结构和运算的有机联系,并配备扎实的实践训练。而C++程序设计课程在教学中比较注重实践,在实践中提高C++的学习和在实际中的应用,只有在有一定C++程序设计基础上,才能对数据结构进行教学,这样对学生而言,对数据结构的学习以及该课程在计算机中的应用将有很大的帮助。因此,数据结构与C++课程整合的研究就非常重要了,理论与应用相结合可以大大提高学生学习计算机科学的兴趣和理解该学科能力。本文主要讨论数据结构和C++课程整合的研究,从数据结构与C++课程在计算机学科中的作用和地位出发,在分析C++与数据结构两门课程传统教学的弊端及相互关系的基础上,探讨如何在课程教学过程中实现两门课的有机结合,并以具体实例说明、分析整合的优点,从而提高教学效果。 关键字:课程整合数据结构C++课程设计实践教学 0引言紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 在计算机课程中,“C++程序设计是计算机专业的一门必修基础课,该语言以其高效而又实用的特性:既可以进行过程化程序设计,又可进行面向对象的程序设计,因此逐步成为各高校程序设计课程中的主流。C++语言既是进行软件开发的直接工具,又是“数据结构”以及其它相关课程的先修课程,因此,在整个教学体系中占据十分重要的地位。而数据结构在计算机科学中是一门综合性的专业基础课程,它不仅涉及到计算机硬件(特别是编码理论,存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据更方便,因此,它是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。在计算机科学中, 数据结构不仅是一般程序设计的基础(C++程序设计),而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。对这两门课程的整合将有很大的必要,这在整个计算机科学教学中也是必要的。 1数据结构 1.1为什么要学习数据结构紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 在计算机发展的初期,人们使用计算机的目的主要是处理数值计算问题。当我们使用计算机来解决一个具体问题时,一般需要经过下列几个步骤:首先要从该具体问题抽象出一个适当的数学模型,然后设计或选择一个解此数学模型的算法,最后编出程序进行调试、测试,直至得到最终的解答。例如,求解数据结构中应有的数学模型的线性方程组,可以使用迭代算法来求解。由于当时所涉及的运算对象是简单的整型、实型或布尔类型数据,所以程序设计者的主要精力是集中于程序设计的技巧上,而无须重视数据结构。随着计算机应用领域的扩大和软、硬件的发展,非数值计算问题越来越显得重要。据统计,当今处理非数值计算性问题占用了85%以上的机器时间。这类问题涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述。因此,解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构,才能有效地解决问题。 1.2学习数据结构作用和意义 数据结构作为计算机专业的一门专业基础课,其主要内容包括将现实世界转化为在计算机世界中的抽象的数据描述,数据在计算机中的组织以及不同数据类型的基本操作实现等,是相对比较难于理解和掌握的课程。它不仅要有计算机方面的高级语言、计算机基础和计算机组成原理等软硬件基础知识,还需要有一定的如离散数学等数学理论。 这门课程也是联系一般基础课和专业课的“桥梁”,它既是程序设计的入门课程,也是诸如操作系统、编译原理、计算机网络以及数据库原理等后续课程的重要的基础课程,它也是构筑这些课程体系与知识结构的核心课程之一,同时对奠定学生计算机专业的基础具有重要意义。 从多年对学习计算机专业的学生跟踪情况看,数据结构课程掌握的 程度与学生对学习后续课程的积极性密切相关,甚至影响到对整个专业知识的掌握。 对毕业学生工作情况的跟踪调查看,工作中的程序设计能力也需要有数据结构的相关知识。一般来说,具有较好数据结构基础知识的学生,在工作过程中适应工作变动、开辟新的研究阵地的能力较强,从而能较好地紧跟信息技术的高速发展。紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 在计算机当中数据结构是计算机的基础但是也是很重要的一门专业课,学好并了解其中的知识对今后的社会和经济发展起到很好的促进作用。 数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。数据结构课程的主要目的是介绍一些常用的数据结构,阐明数据结构内在的逻辑关系,讨论它们在计算机中的存储表示,并结合各种数据结构,讨论对它们实行的各种运算的实现算法。很多算法实际上是对某种数据结构施行的一种变换,研究算法也就是研究在实施变换过程中数据结构的动态性质。紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 数据结构作为计算机学科的基础性专业课程,其在计算机科学中的及其重要,课程学习的好坏,直接关系到学生后期计算机水平的高低。而这门课程一直因为过于抽象,难以理解,而让人望而止步。如果能够把这门抽象的课程变得具体而生动,必将提高学生学习的兴趣,增加其积极性和主动性,也有利于学生对此课程的学习。 1.3数据结构课程课程学习中的知识体系 数据结构知识体系图篇二:数据结构毕业设计题目整理 数据结构课程设计题目 1.飞机订票系统(限1人完成)(顺序或链式存储) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息,客户信息的存储结构,设计程序完成功能; 2.宿舍管理查询软件(限1人完成) 任务:为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:采用交互工作方式 建立数据文件,包括学生信息、宿舍信息、住宿信息,学生信息按关键字(姓名、学号)进行排序(排序方法自选,不能相同); 查询:(用二分查找实现以下操作) 按姓名查询 按学号查询 (用顺序查找实现以下操作) 按房号查询 3.校园导航问题(限1人完成) 设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 要求:能增加场所 4.图书借阅管理系统(限1人完成)(顺序或链式存储) 主要分为两大功能:紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书); 2)会员管理(增加会员、查询会员、删除会员、借书信息); 5.学生成绩管理(限1人完成)(顺序或链式存储) 包括:课程信息,学生信息等;能增加课程或学生。 实现功能:输入、输出、插入、删除、查找、显示、保存、排序、退出。 6.活期储蓄帐目管理(限1人完成) 活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求: 1)能比较迅速地找到储户的帐户,以实现存款、取款记账; 2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。 7.通讯录的制作(限1人完成) 设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。 设计内容:本系统应完成一下几方面的功能: 1) 2)紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 3) 4) 5) 6) 7)输入信息——enter();显示信息———display();查找以姓名作为关键字———search();删除信息———delete();存盘———save();装入———load();排序---sort() 设计要求: 1)每条信息至少包含:姓名(NAME)街道(STREET)城市(CITY)邮编 (EIP)国家(STATE)几项 2)作为一个完整的系统,应具有友好的界面和较强的容错能力 8.哈夫曼编码/译码器(限1人完成) 【问题描述】设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。 【基本要求】 1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前 目录中) 2)紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 3)编码:利用建好的哈夫曼树生成哈夫曼编码; 4)输出编码; 5)设字符集及频度如下表: 字符空格ABCDEFGHIJKLM 频度1866413223210321154757153220 字符NOPQRSTUVWXYZ 频度5763151485180238181161 9.图书管理系统(限1人完成)(顺序或链式存储) 【问题描述】 设计一个计算机管理系统完成图书管理基本业务。 【基本要求】 1)每种书的登记内容包括书号、书名、著作者、现存量和库存量; 2)对书号建立索引表(线性表)以提高查找效率; 3)系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。 *对借阅者信息的管理,增加、删除、查找等紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 10.电话号码查找系统(限1(本文来自:wwW.xIaocAofanwEn.coM小草范文网:数据结构毕业设计)人完成) 【问题描述】 利用散列表的设计与实现电话号码查找系统。 【基本要求】 1)设每个记录有下列数据项:电话号码、用户名、地址; 2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表; 3)采用一定的方法解决冲突; 4)查找并显示给定电话号码的记录; 查找并显示给定用户名的记录。 11.一元多项式的实现。(限1人完成) 设有一元多项式Am(x)和Bn(x). Am(x)=A0+A1x1+A2x2+A3x3+?+Amxm Bn(x)=B0+B1x1+B2x2+B3x3+?+Bnxn 请实现求M(x)=Am(x)+Bn(x)、M(x)=Am(x)-Bn(x)和M(x)=Am(x)×Bn(x)。 要求: 1)首先判定多项式是否稀疏 2)分别采用顺序和动态存储结构实现; 3)结果M(x)中无重复阶项和无零系数项;紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 4)要求输出结果的升幂和降幂两种排列情况 12.表达式的值1(限1人完成) 要求:从文件读取表达式,判断表达式是否合理,将表达式转换成后缀形式,按后缀表达式求值;题目涉及加减乘除,带括弧的混合运算;随时可以退出; 13.表达式的值2(限1人完成) 要求:从键盘输入表达式,利用算符优先原则求中缀表达式,并将表达式及其结果存入指定文件,可重复计算。 14.学生成绩管理系统(限1人完成) 现有学生成绩信息文件1(1.txt),内容如下 姓名学号语文数学英语 张明明01677882 李成友02789188 张辉灿03688256 王露04564577 陈东明05673847 ?.......? 学生成绩信息文件2(2.txt),内容如下: 姓名学号语文数学英语 陈果31576882 李华明32889068 张明东33484256紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 李明国34504587 陈道亮35475877 ?.......? 试编写一管理系统,要求如下: 1)实现对两个文件数据进行合并,生成新文件3.txt 2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt 3)对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方 法实现) 4)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种 查找方法实现) 5)要求使用结构体,链或数组等实现上述要求. 15.图的遍历和生成树求解实现(限1人完成) 要求: 1) 2) 3) 4) 先任意创建一个图;图的DFS,BFS的递归和非递归算法的实现最小生成树(两个算法)的实现,求连通分量的实现紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观要求用邻接矩阵、邻接表结构存储实现 16.排序综合(限1人完成) 利用随机函数产生N个随机整数(XX0以上),对这些数进行多种方法进行排序。 要求: 1)至少采用7种方法实现上述问题求解(提示,可采用的方法有插入排序、 希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。 2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对 比),找出其中两种较快的方法。 17.josephs环(限1人完成) 任务:编号是1,2,??,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 测试数据:m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么? 要求:输入数据:建立输入处理输入数据,输入m的初值,n,输入每个人的密码,建立单循环链表。 输出形式:建立一个输出函数,将正确的输出序列 18.HUFFMAN树及编码(限1人完成) 随机输入一篇英文文章(或读一个TXT文件),生成并显示HUFFMAN树,输出每个字母的HUFFMAN编码,判断ASCII编码与HUFFMAN编码对本篇报文长度节省效果。 19.拓扑排序(限1人完成) [问题描述]建立图的存储结构,能够输入图的顶点和边的信息,并存储到相应存储结构中,再编写函数实现图的拓扑排序。 [基本要求]1)选择邻接表作为有向图的存储结构模拟整个过程,并输出拓扑排序的顶点序列。2)给出逆向的拓扑有序序列。 [测试数据]利用下图中的数据调试程序 20.简单的职工管理系统(限1人完成)(顺序或链式存储) 1.问题描述 对单位的职工进行管理,包括插入、删除、查找、排序等功能。紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 2.要求 职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。 (1)新增一名职工:将新增职工对象按姓名以字典方式增加到职工管理文件中。 (2)删除一名职工:从职工管理文件中删除一名职工对象。 (3)查询:从职工管理文件中查询符合某些条件的职工。 (4)修改:检索某个职工对象,对其某些属性进行修改。 (5)排序:按某种需要对职工对象文件进行排序。 3.实现提示 职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。 (1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。 (2)对职工对象中的"姓名"按字典顺序进行排序。 (3)对排序后的职工对象进行增、删、查询、修改等操作。篇三:数据结构图的算法的毕业论文 图紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 图形结构是一种比树形结构更复杂的非线性结构。树形结构中的结点之间具有明显的层次关系,且每一层上的结点只能和上一层中的一个结点相关,但可能和下一层的多个结点相关。在图形结构中,任意两个结点之间都可能相关,即结点与结点之间的邻接关系可以是任意的。因此,图形结构可用来描述更加复杂的对象。 1图的基本概念和存储结构 1.1图的定义 图(Graph)是由非空的顶点集合V与描述顶点之间关系——边(或者弧)的集合E组成,其形式化定义为: G=(V,E) 如果图G中的每一条边都是没有方向的,则称G为无向图。无向图中边是图中顶点的无序偶对。无序偶对通常用圆括号“()”表示。例如,顶点偶对(vi,vj)表示顶点vi和顶点vj相连的边,并且(vi,vj)与(vj,vi)表示同一条边。 如果图G中的每一条边都是有方向的,则称G为有向图。有向图中的边是图中顶点的有序偶对,有序偶对通常用尖括号“”表示。例如,顶点偶对表示从顶点vi指向顶点vj的一条有向边;其中,顶点vi称为有向边的起点,顶点vj称为有向边的终点。有向边也称为弧;对弧来说,vi为弧的起点,称为弧尾;vj为弧的终点,称为弧头。紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 图是一种复杂的数据结构,表现在不仅各顶点的度可以不同,而且顶点之间的逻辑关系也错综复杂。从图的定义可知:一个图的信息包括两个部分:图中顶点的信息以及描述顶点之间的关系——边或弧的信息。因此无论采取什么方法来建立图的存储结构,都要完整、准确地反映这两部分的信息。为适于用C语言描述,从本节起顶点序号由0开始,即图的顶点集的一般形式为:V={v0,v1,?,vn-1}。 下面介绍几种常用的图的存储结构。 1.2邻接矩阵 所谓邻接矩阵存储结构,就是用一维数组存储图中顶点的信息,并用矩阵来表示图中各顶点之间的邻接关系。假定图G=(V,E)有n个顶点,即V={v0,v1,?,vn-1},则表示G中各顶点相邻关系需用一个n×n的矩阵,且矩阵元素为: A[i][j]=1若(vi,vj)或是E中的边 0若(vi,vj)或不是E中的边若G是带权图(网),则邻接矩阵可定义为:wij若(vi,vj)或是E中的边 0或∞若(vi,vj)或不是E中的边其中,wij表示(vi,vj)或上的权值;∞则为计算机上所允许的大于所有边上权值 的数值。无向图的邻接矩阵表示如图7-6所示。 图7-6无向图及邻接矩阵表示 有向图的邻接矩阵表示如图7-7所示。 图7-7有向图及邻接矩阵表示紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 带权图的邻接矩阵表示如图7-8所示。 图7-8带权图及邻接矩阵表示 从图的邻接矩阵可以看出以下特点: (1)无向图(包括带权图)的邻接矩阵一定是一个按对角线对称的对称矩阵。因此,在具体存放邻接矩阵时只需存放上(或下)三角矩阵的元素即可。 (2)对于无向图,邻接矩阵的第i行或第i列的非零元素(或非∞元素)个数正好是第i个顶点的度D(vi)。 (3)对有向图,邻接矩阵的第i行非零元素(或非∞元素)的个数正好是第i个顶点的出度OD(vi),第i列非零元素(或非∞元素)的个数正好是第i个顶点的入度ID(vi)。 (4)用邻接矩阵存储图,很容易确定图中任意两个顶点之间是否有边相连;但是,要确定图中具体有多少条边,则必须按行、按列对每一个元素进行查找后方能确定,因此花费的时间代价较大,这也是用邻接矩阵存储图的局限性。 在采用邻接矩阵方式表示图时,除了用一个二维数组存储用于表示顶点相邻关系的 邻接矩阵之外,还需要用一个一维数组存储顶点信息。这样,一个图在顺序存储结构下的类型定义为; typedefstruct { charvertex[MaxNum];紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观/*顶点为字符型且顶点表的长度小于MaxNum*/intedges[MaxNum][MaxNum];/*边为整型且edges为邻接矩阵*/ }MGraph;/*MGraph为采用邻接矩阵存储的图类型*/ 建立一个无向图的邻接矩阵程序如下: #include #include #defineMAXSIZE30 typedefstruct { charvertex[MAXSIZE];//顶点为字符型且顶点表的长度小于MAXSIZE intedges[MAXSIZE][MAXSIZE];//边为整型且edges为邻接矩阵 }MGraph;//MGraph为采用邻接矩阵存储的图类型 voidCreatMGraph(MGraph*g,inte,intn) {//建立无向图的邻接矩阵g->egdes,n为顶点个数,e为边数 inti,j,k; printf("Inputdataofvertexs(0~n-1):n"); for(i=0;i g->vertex[i]=i;//读入顶点信息 for(i=0;i for(j=0;j g->edges[i][j]=0;//初始化邻接矩阵紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 for(k=1;k { printf("Inputedgeof(i,j):"); scanf("%d,%d",&i,&j); g->edges[i][j]=1; g->edges[j][i]=1; } } voidmain() { inti,j,n,e; MGraph*g;//建立指向采用邻接矩阵存储图类型指针 g=(MGraph*)malloc(sizeof(MGraph));//生成采用邻接矩阵存储图类型的存储空间printf("InputsizeofMGraph:");//输入邻接矩阵的大小 scanf("%d",&n); printf("Inputnumberofedge:");//输入邻接矩阵的边数 scanf("%d",&e); CreatMGraph(g,e,n);//生成存储图的邻接矩阵 printf("OutputMGraph:n");//输出存储图的邻接矩阵 for(i=0;i {紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 for(j=0;j printf("%4d",g->edges[i][j]); printf("n"); } } 【说明】 无向图的邻接矩阵表示如图15-1所示。 0VV30101 A=10110100V1V11002 图15-1无向图及邻接矩阵表示 对图15-1所示的无向图,程序执行如下: 输入:InputsizeofMGraph:4↙ Inputnumberofedge:4↙ Inputdataofvertexs(0~n-1): Inputedgeof(i,j):0,1↙ Inputedgeof(i,j):0,3↙ Inputedgeof(i,j):1,3↙ Inputedgeof(i,j):1,2↙ 输出:OutputMGraph: 0101 1011 0100 1100紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 Pressanykeytocontinue 1.3邻接表 邻接表是图的一种顺序存储与链式存储相结合的存储方法。邻接表表示法类似于树的孩子表示法。也即,对于图G中的每个顶点vi,将所有邻接于vi的顶点vj链成一个单链表,这个单链表就称为顶点vi的邻接表;然后,将所有顶点的邻接表表头指针放入到一个一维数组中,就构成了图的邻接表。用邻接表表示的图有两种结构,如图7-9所示。 图7-9邻接表表示的结点结构 一种是用一维数组表示的顶点表的结点(即数组元素)结构,它由顶点域(vertex)和指向该顶点第一条邻接边的指针域(firstedge)(也即,这个指针指向该顶点的邻接表)所构成。另一种是邻接表结点(边结点),它由邻接点域(adjvex)和指向下一条邻接边的指针域(next)所构成。对带权图(网)的邻接表结点则需增加一个存储边上权值信息的这样一个域。因此,带权图的邻接表结点结构如图7-10所示。 图7-10带权图(网)的邻接表结点结构 图7-11给出了图7-6所示的无向图所对应的邻接表表示。 图7-11无向图的邻接表表示 邻接表表示下的类型定义为:紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 typedefstructnode/*邻接表结点*/ { intadjvex;/*邻接点域*/ structnode*next;/*指向下一个邻接边结点的指针域*/ }EdgeNode;/*邻接表结点类型*/ typedefstructvnode/*顶点表结点*/ { intvertex;/*顶点域*/ EdgeNode*firstedge;/*指向邻接表第一个邻接边结点的指针域*/ }VertexNode/*顶点表结点类型*/ 建立一个无向图的邻接表存储算法如下: voidCreatAdjlist(VetexNodeg[],inte,intn) {/*建立无向图的邻接表,n为顶点数,e为边数,g[]存储n个顶点表结点*/ EdgeNode*p; inti,j,k; printf(“Inputdateofvetex(0~n-1);n”); for(i=0;i { g[i].vertex=i;/*读入顶点i信息*/紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 g[i].firstedge=NULL;/*初始化指向顶点i的邻接表表头指针*/ } for(k=1;k { printf("Inputedgeof(i,j):"); scanf("%d,%d",i,j); p=(EdgeNode*)malloc(sizeof(EdgeNode)); p->adjex=j;/*在顶点vi的邻接表中添加邻接点为j的结点*/ p->next=g[i].firstedge;/*插入是在邻接表表头进行的*/ g[i].firstedge=p; p=(EdgeNode*)malloc(sizeof(EdgeNode)); p->adjvex=i;/*在顶点vj的邻接表中添加邻接点为i的结点*/ p->next=g[j].firstedge;/*插入是在邻接表表头进行的*/ g[i].firstedge=p; } } 2图的遍历紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 图的遍历是指从图中的任一顶点出发,按照事先确定的某种搜索方法依次对图中所有顶点进行访问且仅访问一次的过程。图的遍历要比树的遍历复杂得多,其复杂性主要表现在以下4个方面: (1)在图结构中,没有象树根结点那样“自然”的首结点,即图中的任何一个顶点都可以作为第一个被访问的结点。 (2)在非连通图中,从一个顶点出发只能访问它所在的连通分量上的所有顶点;因此,还需考虑如何选取下一个未被访问的顶点来继续访问图中其余的连通分量。 (3)在图结构中如果有回路存在,则一个顶点被访问后有可能沿回路又回到该顶点。 (4)在图结构中一个顶点可以和其它多个顶点相邻,当该顶点访问过后则存在如何从众多相邻顶点中选取下一个要访问的顶点问题。 图的遍历是图的一种基本操作,它是求解图的连通性问题、拓扑排序以及求关键路径等算法的基础。图的遍历通常采用深度优先搜索(DepthFirstSearch,DFS)和广度优先搜索(BreadthFirstSearch,BFS)两种方式,这两种方式对无向图和有向图的遍历都适用。 2.1深度优先搜索紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动
今年以来我们在上级党组织的领导和区精神文明办的关心支持指导下坚持以邓小平理论和三个代表重要思想为指导认真落实科学发展观 深度优先搜索对图的遍历类似于树的先根遍历,是树的先根遍历的一种推广;也即,搜索顶点的次序是沿着一条路径尽量向纵深发展。深度优先搜索的基本思想是:假设初始状态是图中所有顶点都未曾访问过,则深度优先搜索可以从图中某个顶点v出发即先访问v,然后依次从v的未曾访问过的邻接点出发,继续深度优先搜索图,直至图中所有和v有路径相通的顶点都被访问过;若此时图中尚有顶点未被访问过,则另选一个未曾访问过的顶点作为起始点,重复上述深度优先搜索的过程,直到图中的所有顶点都被访问过为止。 我们以图7-18的无向图为例进行图的深度优先搜索。假定从顶点v0出发,在访问了顶点v0后选择邻接点v1作为下一个访问的顶点;由于v1未曾访问过,则访问v1并继续由v1开始搜索下一个邻接点v3作为访问顶点;v3同样没有访问过,则访问v3并继续搜索下一个邻接点v6;v6也未访问过,则访问v6再继续搜索下一个邻接点v4;v4未曾访问过,则访问v4并继续搜索下一个邻接点v1,此时由于v1已被访问过则回退至v4继续搜索v4的下一个邻接点;由于v4已无未被访问过的邻接点,则继续回退到v6再搜索v6的未被访问邻接点;?这种回退一直持续到v0,此时可搜索到v0的未被访问邻接点v2,即访问v2并继续搜索下一个邻接点v5;由于v5未被访问,则访问v5并继续搜索v5的邻接点;因v5已无未被访问过的邻接点故回退至v2,继续搜索v2的未被访问邻接点,但v2紧紧围绕中心工作以创建区级文明单位活动为载体切实加强思想道德建设和企业文化建设深入开展群众性的精神文明创建活动'
您可能关注的文档
- 土木工程专业钢结构毕业设计:秦皇岛某机械厂钢结构厂房2号生产车间设计
- 谈框架结构毕业设计计算书
- 土木工程框架结构毕业设计计算书
- 朔州市政府办公楼框架结构毕业设计开题报告.doc
- 建筑结构毕业设计-某中学学生宿舍楼
- 6层住宅楼砖混结构毕业设计
- 路基及支挡结构毕业设计-secret
- 多层框架结构毕业设计
- 钢结构毕业设计
- 两层钢结构毕业设计任务书
- 框架结构毕业设计
- 老庄结构毕业设计视频
- 复式传热回转圆筒干燥器结构毕业设计说明书
- [学士]西安十层高层宾馆钢混框架结构毕业设计(含计算书,建筑结构图)
- 工业机器人结构毕业设计开题报告
- 挖掘机机械手臂的结构毕业设计
- 重力式沉箱结构毕业设计模板
- 框架结构毕业设计