预习任务:帮助中国大学生计算机设计大赛江苏省组委会设计一款赛事管理系统,实现赛务相关的数据管理及信息服务。这个系统需要实现管理参赛队的基本信息,包括参赛队编号、参赛作品名称、参赛学校、赛事类别、参赛者、指导老师等。此外,系统还需要能够基于二叉排序树进行查找,并实现按参赛学校或赛事类别查询参赛团队的功能。决赛叫号系统和赛地导游程序也是系统必备的功能。
预习准备:先查阅了相关资料,了解到二叉排序树是一种基于二分查找的数据结构,通过将元素按照大小关系进行排序,便于快速查找和处理。此外,查阅了一些排序算法,包括选择排序、插入排序、希尔排序、归并排序、堆排序等,它们的复杂度和应用场景不同,需要根据具体情况选择。
接下来,按照设计要求逐一学习和掌握相关知识。先学习如何将赛事数据存入文件,并从文件中读取查询,掌握文件操作的相关方法和技巧。再学习如何实现二叉排序树进行查找,并计算平均查找长度ASL。然后,学习如何进行排序,选择适合的排序算法,实现按参赛学校或赛事类别查询参赛团队的功能。接着,学习如何模拟决赛叫号系统,掌握队列等相关数据结构和算法。最后,学习如何实现赛地导游程序,掌握图论中最短路径算法和实现方法。