本课程旨在通过实现和比较多种经典排序算法(如冒泡、插入、选择等),帮助学生理解数据结构原理及其在实际问题中的应用。
1. 链表排序
问题描述:建立一个单链表,并对其进行正序输出以及倒序输出。
基本要求:
(1)从文件中读取30个无序整数,使用这些数据创建一个单链表并进行展示。
(2)对上述链表中的元素进行排序处理后将其重新展示出来。
(3)最后将已排好顺序的链表以倒序方式输出。
2. 二叉树的应用
任务:编写程序实现以下功能:
- 根据文件提供的信息构建一棵包含至少20个节点且高度不低于4的二叉树;
- 分别采用递归和非递归两种方法完成先序遍历,同时也要支持中序与后序遍历操作;
- 完成层次(广度优先)遍历,并计算出该二叉树的高度。
3. Hash表应用
问题描述:设计并实现一个基于散列技术的电话号码查询系统。
基本要求:
1) 每个记录包含三个数据项,分别是电话号码、用户名和地址;
2) 至少输入30条这样的记录信息,并以每个记录中的电话号码作为关键字来创建散列表;
3) 使用开放定址法处理哈希冲突问题;
4) 实现给定的电话号码查询功能并输出相应的用户信息。
4. 排序方法比较
设计要求:生成10个样本,每个包含20,000随机整数。使用直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序和基数排序这八种不同的算法对这些数据进行处理,并记录下每一种方法的性能表现。