《数据结构(Java版)》课程设计任务书
java课程设计范例

java课程设计范例一、教学目标本节课的教学目标是让学习者掌握Java编程语言的基本语法、流程控制语句以及简单的数据结构。
通过本节课的学习,学生将能够:1.理解Java语言的基本语法,包括数据类型、变量、运算符等。
2.掌握Java的流程控制语句,包括条件语句、循环语句等。
3.熟悉Java的基本数据结构,包括数组、链表、栈和队列等。
4.能够运用Java语言编写简单的程序,实现基本的算法。
二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法:介绍Java语言的数据类型、变量、运算符等基本语法规则。
2.流程控制语句:讲解条件语句、循环语句等流程控制语句的用法和意义。
3.基本数据结构:介绍Java中的数组、链表、栈和队列等基本数据结构及其应用。
4.编程实践:通过编写简单的Java程序,使学生能够将所学知识应用于实际问题的解决中。
三、教学方法为了达到本节课的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解Java语言的基本语法、流程控制语句和基本数据结构,使学生能够理解和掌握相关知识。
2.案例分析法:通过分析具体的Java程序案例,使学生能够了解和掌握Java语言的应用方法。
3.实验法:让学生通过编写和运行Java程序,亲自体验和掌握Java语言的语法和编程技巧。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Java编程语言》等与本节课内容相关的教材和参考书。
2.多媒体资料:通过PPT等多媒体形式,生动、形象地展示Java语言的基本语法、流程控制语句和基本数据结构。
3.实验设备:为学生提供必要的计算机和网络环境,让他们能够编写和运行Java程序。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下几种评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估他们的学习态度和理解能力。
2.作业:布置与课程内容相关的作业,评估学生对知识点的掌握程度和编程能力。
数据结构与算法java版第五版

数据结构与算法java版第五版一、引言数据结构与算法是计算机科学的基础,是程序员必须掌握的核心知识。
如何高效地使用数据结构和算法解决实际问题,是每个程序员都需要思考和学习的事情。
本文将介绍《数据结构与算法java版第五版》这本书的内容,从数据结构和算法的基础知识到高级应用进行探讨。
二、基础知识1. 数据结构的概念及分类•线性结构•树形结构•图形结构2. 算法的概念及分类•基本概念•算法的复杂度分析3. Java基础•Java基本语法•面向对象编程•集合框架三、线性结构1. 数组•数组的定义和使用•数组的常见操作•数组的应用场景2. 链表•链表的定义和基本操作•单向链表和双向链表的区别•链表的应用场景3. 栈和队列•栈的定义和基本操作•队列的定义和基本操作•栈和队列的应用场景4. 哈希表•哈希表的原理和实现•哈希函数的选择•哈希表的应用场景四、树形结构1. 二叉树•二叉树的定义和基本操作•二叉树的常用遍历算法•二叉树的应用场景2. AVL树•AVL树的定义和性质•AVL树的插入和删除操作•AVL树的应用场景3. 红黑树•红黑树的定义和性质•红黑树的插入和删除操作•红黑树的应用场景4. B树和B+树•B树和B+树的定义和性质•B树和B+树的插入和删除操作•B树和B+树的应用场景五、图形结构1. 图的表示和基本操作•图的表示方法•图的遍历算法•图的最短路径算法2. 拓扑排序•拓扑排序的原理和算法•拓扑排序的应用场景3. 最小生成树•最小生成树的定义和算法•最小生成树的应用场景4. 图的搜索•图的深度优先搜索•图的广度优先搜索•图的搜索算法的应用场景六、高级应用1. 排序算法•冒泡排序•插入排序•选择排序•快速排序•归并排序2. 查找算法•顺序查找•二分查找•哈希查找•插值查找3. 动态规划•动态规划的基本概念•动态规划的应用场景•动态规划问题的解决步骤七、总结《数据结构与算法java版第五版》是一本全面介绍数据结构和算法的书籍,从基础知识到高级应用等多个方面进行了深入的探讨。
《数据结构》课程设计任务书

算法与数据结构课程设计任务书课程编号:2409080S 课程性质:专业实践课学时/学分:1周/1. 适用专业:计算机科学与技术(交通信息工程)教材:《数据结构》C语言版,严蔚敏、吴伟民编著,清华大学出版社课程设计目的:1.训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题的能力。
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.培养学生在分析问题和解决问题过程严谨的科学态度和良好的工作作风课程设计要求:1.18周周1至周5完成选题、问题分析、算法设计、程序编写、程序测试和程序验收。
2.按照课设格式提交课程设计报告(7月10日)。
3.分数=80%程序+20%报告课程设计题目课程设计题一:学生成绩管理系统设计目的:1.掌握线性链表的建立。
2.掌握线性链表的基本操作。
3.加深对线性链表及其基本操作的理解。
利用线性链表实现学生成绩管理系统。
具体功能:输入、输出、插入、删除、查找、追加、显示、分类合计,并能在屏幕上输出操作前后的结果。
设计要求:1.初始化线性链表。
可以通过键盘输入,进行学生信息的录入。
并根据命令,进行插入、删除、追加、遍历、分类合计等操作。
2.输出操作前后的结果。
3.如果有时间,可以添加保存功能。
即将链表中的学生记录保存到一个文本文件中。
课程设计题二:停车场管理系统设计目的:1.掌握栈和队列的建立。
2.掌握栈和队列的基本操作。
3.深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
4.加深对栈和队列的理解和认识。
设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
《数据结构》课程设计指导书

《数据结构》课程设计指导书课程设计名称:数据结构课程设计09102版服务课程名称:数据结构课程设计适用班级:BX0805、BX0806 课程设计周数:1-2周指导老师:王中华(wangzh@)指导方式:集体辅导与个别答疑相结合课程设计授课单位:上海电机学院电子信息学院计算机基础教学部课程设计教材及主要参考资料:陈元春等编著的《实用数据结构基础》,中国铁道出版社严蔚敏,吴伟民编著的《数据结构》,清华大学出版社一、课程设计教学目的及基本要求1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
5.设计的题目要求达到一定工作量,并具有一定的深度和难度。
6.编写出课程设计报告,报告正文不得少于10页(其中正文文字部分不得少于七页,代码不算页数)。
二、课程设计内容及安排1.问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2.逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3.详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4.程序编码:把详细设计的结果进一步求精为程序设计语言程序。
数据结构课程设计任务书_2011-09-05-08-42-00

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static
存储结构使用线性表,分别用几个函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;
设计内容与步骤
1、结点结构的设计
设计内容与步骤
1、选择合适的数据结构(提示:如何记录棋子信息?如何表示人和机器的棋型?三维数组还是二维数组?)
2、算法设计与分析
3、程序设计、实现、调试
4、课程设计说明书
设计工作计划与进度安排
1、设计工作10学时
2、实现与调试20学时
3、课程设计说明书10学时
设计考核要求
1、考勤20%
2、课程设计说明书50%
自己想象,功能要多,设计要合理。
DataStructuresandAlgorithmAnalysisinJava第三版课程设计

Data Structures and Algorithm Analysis in Java 第三版课程设计一、课程设计概述数据结构和算法是计算机科学的核心内容,也是计算机视觉和人工智能等领域的基础。
本课程设计旨在通过学习Java语言中的数据结构和算法,帮助学生掌握计算机科学中的基础知识,提升实际编程能力。
二、课程设计目标本课程设计的主要目标是:1.深入了解Java语言中数据结构和算法的相关知识;2.掌握数据结构和算法的基本思想、原理和实现方法;3.学会利用Java语言实现常用的数据结构和算法;4.培养学生的编程能力和解决问题的能力。
三、课程设计内容1. 数据结构本部分主要介绍Java语言中常用的数据结构,包括以下内容:•数组 (Array)•链表 (Linked List)•栈 (Stack)•队列 (Queue)•树 (Tree)•图 (Graph)•哈希表 (Hash Table)每一种数据结构都将包括其定义、基本操作、实现方法、优缺点等方面的内容,同时将介绍其在实际中的应用场景。
2. 算法本部分主要介绍Java语言中常用的算法,包括以下内容:•查找算法 (Search Algorithm)•排序算法 (Sort Algorithm)•递归算法 (Recursive Algorithm)•动态规划算法 (Dynamic Programming Algorithm)每一种算法都将包括其基本原理、实现方法、时间复杂度、空间复杂度等方面的内容,同时将介绍其在实际中的应用场景。
3. 综合应用本部分将通过实现一个小项目来综合运用数据结构和算法的知识,包括以下内容:•项目需求分析•数据结构和算法选用•代码实现•测试和优化四、课程设计作业1. 数据结构和算法实现要求学生根据课程中介绍的数据结构和算法,分别实现以下代码:•数组实现 (Array Implementation)•链表实现 (Linked List Implementation)•栈实现 (Stack Implementation)•队列实现 (Queue Implementation)•二叉树实现 (Binary Tree Implementation)•图实现 (Graph Implementation)•哈希表实现 (Hash Table Implementation)•查找算法实现 (Search Algorithm Implementation)•排序算法实现 (Sort Algorithm Implementation)•递归算法实现 (Recursive Algorithm Implementation)•动态规划算法实现 (Dynamic Programming Algorithm Implementation)2. 综合应用实现要求学生分组实现一个小项目,根据自己的兴趣和能力,选择一种合适的数据结构和算法,来解决实际问题。
java课程设计教学大纲

java课程设计教学大纲一、引言Java语言是一种通用的、面向对象的编程语言,广泛应用于软件开发领域。
本教学大纲旨在为学习者提供一个全面的Java课程设计教学指导,帮助学习者系统学习Java编程的基础知识和应用技巧。
二、课程目标本课程设计旨在培养学生以下能力和素养:1. 掌握Java编程语言的基本语法和核心概念;2. 理解面向对象编程的原则和应用;3. 学会使用Java开发工具进行程序开发和调试;4. 掌握Java程序设计中的常用数据结构和算法;5. 能够利用Java进行简单的应用程序开发和项目实践。
三、课程内容1. Java基础知识1.1 Java发展历程和特点1.2 Java开发环境搭建1.3 Java程序的基本结构1.4 变量和数据类型1.5 运算符和表达式1.6 控制流程语句2. 面向对象编程2.1 类和对象的定义与使用 2.2 封装、继承和多态2.3 接口和抽象类2.4 异常处理机制2.5 泛型编程3. Java核心库3.1 输入输出流3.2 多线程编程3.3 GUI编程3.4 网络编程3.5 数据库编程4. 数据结构与算法4.1 线性表4.2 栈和队列4.3 树和图4.4 排序和查找算法4.5 分治算法和动态规划5. 综合项目实践5.1 根据教师要求,完成一个小型Java应用程序开发项目5.2 项目中涵盖Java核心知识和技术四、教学方法1. 理论讲解:通过课堂讲授,系统介绍Java编程语言的基本知识和核心概念。
2. 实践演练:通过编程实践,巩固学生对所学知识的理解和应用,提升编程技巧。
3. 课程设计:设计综合性项目,包括需求分析、软件设计、编码和测试等环节,培养学生综合运用所学知识的能力。
4. 课堂互动:鼓励学生提问、讨论和分享编程经验,激发学生的学习兴趣和动力。
五、教学评价1. 平时表现:包括课堂参与、作业完成情况等。
2. 实验报告:针对实验项目,撰写相关的实验报告,评估学生对所学内容的理解和应用。
《数据结构》课程标准

《数据结构》课程标准课程名称:数据结构课程代码:3250619适用专业:软件技术专业(软件开发方向)课程性质:专业必修课学时:48学时(理论:24 实践: 24)学分:3学分一、课程概述(一)课程的地位和作用《数据结构》是软件技术专业(软件开发方向)的一门专业必修课。
课程的前导课程是《Java面向对象编程》,本课程在后续软件开发类课程中起着非常重要的作用,其知识的应用将贯穿于本专业的所有课程。
在程序设计中,一个好的程序无非是选择一个合适的数据结构和好的算法,而好的算法的选择很大程度上取决于描述实际问题的数据结构的选取。
所以,学好数据结构,将是进一步提高学生程序设计水平的关键之一。
数据结构的应用水平是区分软件开发、设计人员水平高低的重要标志之一,缺乏数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序。
本课程的改革理念是,坚持工程化、实用化教学,密切适应计算机技术的发展趋势,坚持学以致用;解决抽象理论与实践相脱节现象,让绝大多数学生在有限的时间内迅速掌握课程的基本理论知识,并把理论知识应用到软件开发的实际工作中,开发出高质是的应用软件。
(二)课程设计思路课程资源建设遵循三个原则、一个过程、四个应用层次。
课程内容的选取遵循科学性原则,课程内容的选取依据数据结构课程在学科体系的理论体系,结合其在实际开发中的使用频度及难易程度,选取适合高职学生的学习内容;课程内容的组织遵循情境性原则,所有模块的内容按一个过程进行组织。
课程内容置于由实践情境建构的以软件开发过程主要逻辑为主线的行动体系之中,采用打碎、集成的思想,将学科体系中所涉及的概念、方法、原理打碎,然后按照软件开发过程逻辑重新集成。
课程资源的建设充分体现人本性原则,按人类掌握知识的基本规律“获取—>内化—>实践—>反思—>新的获取”,开发四个实践层次“验证性应用、训练性应用、设计性应用、创造性应用”的训练题库。
二、培养目标(一)总体目标《数据结构》课程以培养学生的数据抽像能力和复杂程序设计的能力为总目标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法与图的存储结构无关。 (67) **返回两个顶点之间的所有路径及其路径长度,算法与图的存储结构无关。 (68) **判断指定的一条路径是否为回路,算法与图的存储结构无关。 (69) **判断一个无向图是否为连通图,算法与图的存储结构无关。 (70) **判断一个有向图是否为强连通图,算法与图的存储结构无关。 (71) **判断一个无向图是否为一棵树,算法与图的存储结构无关。 (72) **求从一个图中任意一个顶点出发的所有遍历路径,算法与图的存储结构无关。 (73) ***图的邻接多重表表示 采用邻接多重表表示存储无向图,实现插入、删除、遍历操作算法。 (74) ***图的邻接多重表表示 采用邻接多重表表示存储有向图,实现插入、删除、遍历操作算法。 (75) ****以邻接多重表存储无向带权图,采用 Prim 算法求图的最小生成树。 (76) ****以邻接多重表存储无向带权图,采用 Kruskal 算法求图的最小生成树。
课程设计任务书
课
程
名
称
数据结构 计算机工程学院 计算机科学与技术 软件 101 2011.12.12~12.16 叶核亚
院(系、部、中心) 专 班 起 指 止 导 日 教 业 级 期 师
1.课程设计应达到的目的 课程设计是巩固所学理论知识、提高程序设计能力的重要实践环节。 数据结构课程设计的目的是,深入理解数据结构的基本理论,掌握对数据结构各种 操作的算法设计方法,增强对基础知识和基本方法的综合运用能力,增强对算法的理解 能力,提高软件设计能力,在实践中培养独立分析问题和解决问题的作风和能力。 2.课程设计题目及要求 数据结构课程设计的要求是, 综合运用数据结构的基础知识和算法设计的基本原则, 独立编制一个具有中等规模的、一定难度的、解决实际问题的应用程序;通过题意分析、 选择数据结构、算法设计、编制程序、调试程序、软件测试、结果分析、撰写课程设计 报告等环节完成软件设计的全过程,完善算法并提高程序性能。
-1-
(15) 三元多项式的表示和运算(排序循环双链表) (16) ***m 元多项式的表示和运算 (17) 字符串查找和替换 实现文本文件的查找和替换字符串功能,并设置区分大小写、全字匹配、使用通配符等选项。 (18) 使用栈计算表达式值 改进例 4.2 计算表达式值,要求同时使用运算符栈和操作数栈,省略转换成后缀表达式过程,并 增加关系等运算符,为各运算符约定优先级,设置若干优先级。将运算符及其优先级声明为运算符对 象。 (19) 求解素数环问题的所有解 完善例 4.3,给定一个初始序列,采用回溯法求解素数环问题的所有解。 (20) ****用递归算法求表达式值 表达式的 BNF 语法定义见实验 4。要求增加关系等运算符,为各运算符约定优先级,设置若干 优先级。将运算符及其优先级声明为运算符对象。 (21) ***带变量的表达式求值 设一个表达式中带有多个变量标识符,要求:① 识别出其中所有变量标识符;② 为所有变量 标识符设置取值;③ 对于任意一组变量取值,求得表达式的运算结果值。 (22) 矩阵类 例 5.1 矩阵类增加深拷贝构造函数、矩阵相加(+) 、矩阵转置、判断三角矩阵、判断对称矩阵、 判断矩阵相等、矩阵相乘等功能。 (23) 压缩存储下三角矩阵 线性压缩存储下三角矩阵,实现构造函数、深拷贝、矩阵相加(+=和+) 、比较相等、转置等功 能。 (24) 压缩存储上三角矩阵 使用三角形的动态二维数组压缩存储上三角矩阵,实现构造函数、深拷贝、矩阵相加(+=和+) 、 比较相等、转置等功能。 (25) 稀疏矩阵三元组顺序表 稀疏矩阵三元组顺序表类增加深拷贝构造函数、矩阵相加(+)、比较相等、转置等功能。 (26) 稀疏矩阵三元组排序顺序表 使用排序顺序表作为成员变量声明稀疏矩阵三元组顺序表类,实现构造、深拷贝、矩阵相加(+= 和+) 、比较相等、转置等功能。 (27) 稀疏矩阵三元组单链表 使用单链表作为成员变量声明稀疏矩阵三元组单链表类, 实现构造、 深拷贝、 矩阵相加 (+=和+) 、 比较相等、转置等功能。 (28) 稀疏矩阵三元组排序单链表 使用排序单链表作为成员变量声明稀疏矩阵三元组单链表类,实现构造、深拷贝、矩阵相加(+= 和+) 、比较相等、转置等功能。 (29) 稀疏矩阵三元组双链表 使用双链表作为成员变量声明稀疏矩阵三元组双链表类, 实现构造、 深拷贝、 矩阵相加 (+=和+) 、 比较相等、转置等功能。 (30) 稀疏矩阵三元组排序双链表 使用排序双链表作为成员变量声明稀疏矩阵三元组双链表类,实现构造、深拷贝、矩阵相加(+= 和+) 、比较相等、转置等功能。 (31) 稀疏矩阵三元组循环双链表 使用循环双链表作为成员变量声明稀疏矩阵三元组循环双链表类,实现构造、深拷贝、矩阵相
-3-
(48) 中序线索二叉树 采用三叉链表结构表示中序线索二叉树,实现插入、删除、求父母结点等操作。 (49) 先序线索二叉树 构造先序线索二叉树,实现求后继结点、遍历、插入、删除、求父母结点等操作。 (50) 后序线索二叉树 构造后序线索二叉树,实现求前驱结点、遍历、插入、删除、求父母结点等操作。 (51) **给定一个文本文件,统计其中字符使用频率,建立一棵 Huffman 树,采用变长的二 进制位串表示字符的 Huffman 编码,计算压缩比,并设计 Huffman 编码的译码算法。 (52) 采用三叉链表表示构造一棵 Huffman 树并求编码。 (53) 树的父母孩子链表存储(横向凹入构造) 以父母孩子链表存储树,以树的横向凹入表示构造或输出一棵树,支持插入结点和删除子树, 判断是否子树。 (54) 树的父母孩子链表存储(广义表构造) 以父母孩子链表存储树,以树的广义表(字符串)表示构造或输出一棵树,支持插入结点和删 除子树,判断是否子树。 (55) 树的父母孩子兄弟三叉链表(横向凹入构造) 为树的孩子兄弟链表结点增加指向父母结点的链,构成树的父母孩子兄弟三叉链表存储结构, 以树的横向凹入表示构造或输出一棵树,支持插入结点和删除子树,判断是否子树。 (56) 树的父母孩子兄弟三叉链表(广义表构造) 以父母孩子兄弟三叉链表存储树,以树的广义表(字符串)表示构造或输出一棵树,支持插入 结点和删除子树,判断是否子树。 (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) 求树中两个结点最近的共同祖先结点,树的父母孩子链表存储。 求树中两个结点最近的共同祖先结点,树的孩子兄弟链表存储。 求树中两个结点最近的共同祖先结点,树的父母孩子兄弟链表存储。 求一棵树的所有直径及其路径长度,树的父母孩子链表存储。 求一棵树的所有直径及其路径长度,树的孩子兄弟链表存储。 求一棵树的所有直径及其路径长度,树的父母孩子兄弟链表存储。 以邻接表存储带权图,采用 Prim 算法求图的最小生成树和最短路径。 以邻接表存储带权图,采用 Dijkstra 算法求图的单源最短路径。 以邻接表存储带权图,采用 Floyd 算法求图所有顶点间的最短路径。 **返回两个顶点 v i 、 v j 的路径长度;当 v i = v j 时,返回 0;当 v i 与 v j 不连通时,返回-1。
-4-
(77) ****以邻接多重表存储无向带权图,采用 Dijkstra 算法求图的单源最短路径。 (78) ****以邻接多重表存储有向带权图,采用 Dijkstra 算法求图的单源最短路径。 (79) ****以邻接多重表存储无向带权图,采用 Floyd 算法求图所有顶点间的最短路径。 (80) ****以邻接多重表存储有向带权图,采用 Floyd 算法求图所有顶点间的最短路径。 (81) 统计字符出现次数 在一个字符串中统计各字符的出现次数,分别采用顺序表和散列表存储,分析查找效率。 (82) 统计单词出现次数 从指定文本文件中统计出各单词及其出现次数,分别采用顺序表和散列表存储,分析查找效率。 (83) 互异的随机数序列 生成一个具有 n 个整数的互异随机数序列,范围是-size~size。怎样实现互异?有哪些存储结构 可以存储随机数序列?分析它们的特点、功能和查找效率,有哪些提高查找效率的措施? (84) 互异的排序随机数序列 生成一个具有 n 个整数的互异的排序随机数序列,范围是-size~size。有哪些存储结构可以存储 随机数序列?分析它们的特点、功能和查找效率,有哪些提高查找效率的措施? (85) 选票统计 设一次选举有 n 个候选人,设计一种选票格式及计票程序,统计所有选票数量、每个候选人的 得票数和得票率,将候选人及其得票数和得票率按得票数降序排序输出。如果不限定候选人数,则可 采用什么结构?分别说明所采用的数据结构和算法, 分析各数据结构的查找性能, 及查找和排序算法 效率,说明查找性能与哪些因素有关,说明为提高查找效率通常采用的措施。 (86) 电话簿的存储与查找(排序顺序表) 采用排序顺序表存储电话簿数据元素,按姓氏排序,实现查找、增加和删除元素操作,分析各 算法效率。 (87) 电话簿的存储与查找(排序循环双链表) 采用排序循环双链表存储电话簿数据元素,按姓氏排序,实现查找、增加和删除元素操作,分 析各算法效率。 (88) 电话簿的存储与查找(索引单链表) 采用索引单链表(类似图的邻接表)存储电话簿数据元素,按姓氏建立索引表,每个索引项指 向一条同姓的单链表,采用分块查找技术,支持增加和删除元素操作,分析各算法效率。索引表可按 姓氏排序。 (89) 电话簿的存储与查找(二叉排序树) 采用二叉排序树存储电话簿数据元素,元素按姓氏排序,实现查找、插入和删除元素操作,分 析各算法效率。 (90) 电话簿的存储与查找(树形结构分类,树的广义表表示) 设计电话簿存储结构,要求按类似以下树形结构分类,并将该棵树保存在文本文件中。实现查 找、插入和;) 、比较相等、转置等功能。 (32) 稀疏矩阵三元组排序循环双链表 使用排序循环双链表作为成员变量声明稀疏矩阵三元组循环双链表类,实现构造、深拷贝、矩 阵相加(+=和+) 、比较相等、转置等功能。 (33) 稀疏矩阵行的单链表 稀疏矩阵行的单链表类增加矩阵相加(+) 、转置等功能。 (34) 稀疏矩阵行的单链表 使用排序单链表作为成员变量声明稀疏矩阵行的单链表类,实现构造、深拷贝、矩阵相加(+= 和+) 、比较相等、转置等功能。 (35) 稀疏矩阵行的双链表 使用双链表作为成员变量声明稀疏矩阵行的双链表类,实现构造、深拷贝、矩阵相加(+=和+) 、 比较相等、转置等功能。 (36) 稀疏矩阵行的双链表 使用排序循环双链表作为成员变量声明稀疏矩阵行的双链表类,实现构造、深拷贝、矩阵相加 (+=和+) 、比较相等、转置等功能。 (37) 稀疏矩阵列的单链表 声明稀疏矩阵三元组列的单链表类,实现构造、深拷贝、矩阵相加(+=和+) 、比较相等、转置 等功能。 (38) 稀疏矩阵列的单链表 使用排序单链表作为成员变量声明稀疏矩阵三元组列的单链表类,实现构造、深拷贝、矩阵相 加(+=和+) 、比较相等、转置等功能。 (39) 稀疏矩阵列的双链表 使用循环双链表作为成员变量声明稀疏矩阵三元组列的双链表类,实现构造、深拷贝、矩阵相 加(+=和+) 、比较相等、转置等功能。 (40) 稀疏矩阵列的双链表 使用排序循环双链表作为成员变量声明稀疏矩阵三元组列的双链表类,实现构造、深拷贝、矩 阵相加(+=和+) 、比较相等、转置等功能。 (41) ***稀疏矩阵三元组十字链表 稀疏矩阵三元组十字链表类增加深拷贝、矩阵相加(+) 、比较相等、转置等功能。 (42) ***不带表名的广义表 以广义表双链表示不带表名的广义表类,增加广义表的删除、查找原子、比较相等、复制等操 作;并增加功能,使之能表示递归表。 (43) ****带表名的广义表 声明以广义表双链表示带表名的广义表类,实现广义表的遍历、插入、删除、查找原子、比较 相等、复制等操作;并增加功能,使之能表示递归表。 (44) 求二叉树中两结点最近的共同祖先结点 采用二叉链表表示二叉树,返回两结点最近的共同祖先结点,判断是否子树。 (45) 求一棵二叉树的所有直径及其路径长度 (46) 静态三叉链表表示的二叉树 声明静态三叉链表表示的二叉树类,实现第 6 章二叉树的基本操作,以及求最近祖先结点、求 直径、 以广义表构造并输出二叉树、 判断是否为完全二叉树等操作, 并与二叉链表存储结构进行比较。 (47) ****表达式二叉树 采用创建表达式二叉树的方法计算表达式值。要求增加关系等运算符,为各运算符约定优先级, 设置若干优先级。将运算符及其优先级声明为运算符对象。