二叉树数据结构课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广西科技大学
课程设计报告
课程名称《数据结构》
学院计算机科学与通信工程学院
专业软件工程
班级软件181班
学号
姓名冯孔丽
成绩
学期 2019-2020-1 指导教师
1课题:.将学生信息以学号为关键字存储在二叉搜索树中,然后按照学号查询
和删除指定学生的信息。
2设计要求:
(1)从键盘输入学生的学号、姓名、英语和数学成绩,计算每个学生的成
绩总分,存储在二叉排序树中。
(2)按照输入的学号查询指定的学生信息,若找到,则输出找到的学生信息,否则输出“查找失败”提示信息。
(3)按照输入的学号删除指定的学生信息,若二叉排序树中存储指定学号
的学生信息,则删除此学生信息,否则,输出“删除失败”提示信息。
3 程序设计
(1)数据设计:二叉搜索树
(2)编码
○1Main.java
package com.gkd;
import com.binaryNode.BinaryNode;
import com.binaryTree.BinaryTree;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BinaryTree binarytree=new BinaryTree();
boolean iscontinue=true;
while(iscontinue) {
printOperate();
int userInput=scanner.nextInt();
switch(userInput) {
case 1:
System.out.println("请输入学生的学号:"); int stuNumber = scanner.nextInt();
System.out.println("请输入学生的姓名:"); String stuName = scanner.next();
System.out.println("请输入学生的数学成绩:");
double math=scanner.nextDouble();
System.out.println("请输入学生的英语成绩:");
double english=scanner.nextDouble(); binarytree.insertNode(stuNumber,stuName,math,english); System.out.println("目前学生人数为:"+binarytree.getNodeAmount());
break;
case 2:
System.out.println("你要删除哪位学生的信息(请输入该学生的学号)");
int deleteKey = scanner.nextInt();
boolean
isDeleteNode=binarytree.removeNode(deleteKey);
if (isDeleteNode){
System.out.println("成功删除学生信息");
}
else {
System.out.println("删除学生信息失败");
}
break;
case 3:
System.out.println("请输入你要查询学生的学号");
int key = scanner.nextInt();
BinaryNode node=binarytree.find(key); if(node==null){
break;
}
System.out.println(node);
break;
case 4:
System.out.println("您已退出学生信息管理系统退出系统");
iscontinue=false;
break;
case 5:
binarytree.traversal();
break;
default:
System.out.println("请输入正确数字!"); break;
}
}
}
public static void printOperate(){
System.out.println("************************"); System.out.println("* 请输入操作 *"); System.out.println("* 1:存储学生信息 *"); System.out.println("* 2:删除学生信息 *"); System.out.println("* 3:查询学生信息 *"); System.out.println("* 4:退出系统 *"); System.out.println("* 5:查找所有学生信息 *"); System.out.println("************************"); }
}
○2BinaryTree.java
package com.binaryTree;
import com.binaryNode.BinaryNode;
public class BinaryTree{
private BinaryNode root;//根节点的引用
private int nodeAmount;//二叉树节点数量
public BinaryTree() {
}
private BinaryNode find(int stuNumber,BinaryNode node) {