2023年6月22日发(作者:)
图书管理系统用二叉树搜索树 代码
1.二叉排序树的构建二叉树数据存储结构在本系统中以对象的形式表现:
其中类Binarytree是一个二叉树对象,BinarytreeNode类对应的是二叉树节点,类Binarytree只需要持有一个根BinarytreeNode对象即可。
public class BinaryTree private BinaryTreeNode root;而BinarytreeNode类需持有一个Book对象(用于存储节点的图书信息),一个List
public class BinaryTreeNode private Book data; private
List
private BinaryTreeNode leftTreeNode; private
BinaryTreeNode rightTreeNode;根据数据库图书表中书籍名称的首字母信息(字符ASCII码的大小),构造二叉排序树。例如我们在图书表中搜索到五条记录分别是:生态保护、摩托车驾驶与安全、中国国家书目、世纪大讲堂、传感器原理、中国园林艺术、二级C语言程序设计、信息安全。提取出它们名称首字母的前四项,构造一个线性表(STBH,MTCJ,ZGGJ,SJDJ,CGQY,ZGYL,EJCY,XXAQ),以表中STBH为根结点,以后的各个数据,逐个插入结点,在插入过程的每一步,原有树结点位置不再变动,只是将新数据的结点作为一个叶子结点插入到合适的位置,使树中任何结点的数据与其左、右子树结点数据之间的关系仍然符合对二叉排序树的要求,构造出二叉排序树如图所示,并按照二叉排序树的原理建立对应的二叉树关系表。
2.为实现二叉排序树的构建,就需要使用合适的关键字来实现排序。本系统采用书名作为关键字。由于书名情况复杂,现提取书名拼音首字母作为比较的具体方法。为此,需要写一个将汉字转化为拼音并提取首字母的Java类
(),通过网上查找,它需要用到包。
import Helper; import
inyinCaseType;
import
inyinOutputFormat;
import inyinToneType;
import inyinVCharType;
public static String getPinYinHeadChar(String str){
HanyuPinyinOutputFormat t3 new HanyuPinyinOutputFormat O;
t eType (ASE);
eType(T-TONE);
arType (-V); String
convert "" for (int j=0;j char word (j); String pinyinArray uPinyinStringArray (word, t3);豆丁if (pinyinArray !nul1) convert +pinyinArray(0).charAt (0); convert +word; } } return convert; }
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687383568a5989.html
评论列表(0条)