背景:数据结构课程设计实验
问题描述:将图书根据不同的内容进行分类、编号,编号后图书存储在书库中不同书架上,要求在进行查找时先提供图书编号,再根据编号这个索引方便的找到图书。并可以进行新增图书、删除图书、修改图书等操作。
测试环境:
Window Vista Ulimate SP1
Visual Studio 2008 Team Suite
c++,本程序尽量使用ANSI C的标准库函数,印象中只用到一个非ANSI C标准的,fflush(stdin);
实现的内容:
支持图书的增、删、查、改操作
数据结构的使用:
理论上,本程序使用的不是真正的B_树,在各个结点上都储存了图书。
********* 主要算法简介 ***********
增加图书:
先通过searchBTree 模糊匹配定位到所要增加的结点的位置,然后,先判断该结点的Key个数是否大于M(M阶树),不大,则正常插入;否则,先进行分裂产生两个子树(原本的p以及新加的subtree),中间那个即将上升到父结点的Book保存在bp里,然后,将待插book与bp的关键字进行比较,大就在subtree里插入,否则就在p里操作。bp成为新的待插图书,在p->parent里进行以上步骤,直至bp插入为止。
删除图书:
先通过Result locateBTree()准确定位到所要删除的图书,然后判断其左、右子树是否为空。若左子树不为空,则将其左子树的右..右端的关键字(或者说是最接近待删图书的关键字的值)替换到待删位置上,然后进行相关的善后处理就可以了。若右子树不为空,则将其右子树的最左端(同样是最接近待删结点关键字的值)替换到等删位置上,然后进行对应的善后工作。若左、右子树都为空,则进行第三种方法:将待删关键字的后续关键字相应的先移一位,就可以了。当然,也要进行善后工作。
修改图书:
locateBTree准确定位到图书,通过重新赋值给待改图书就可以了。
查询图书:
直接locateBTree准确定位到图书就可以了。
作者:枫叶★借问(337studio) 2009年04月24日
谨以此纪念今天发布的Ubuntu9.04 PC正式版
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
数据结构课程设计(图书管理-模拟) 将图书根据不同的内容进行分类、编号,编号后图书存储在书库中不同书架上,要求在进行查找时先提供图书编号,再根据编号这个索引方便的找到图书。并可以进行新增图书、删除图书、修改图书等操作。 采用B树实现 作者:枫叶★借问(337studio) 2009年04月24日 谨以此纪念今天发布的Ubuntu9.04 PC正式版
资源推荐
资源详情
资源评论
收起资源包目录
Demo.rar (5个子文件)
图书管理Demo
可执行文件
图书管理.exe 11KB
图书管理.pdb 275KB
src
Main.cpp 849B
BTree.h 11KB
ReadME.txt 2KB
共 5 条
- 1
资源评论
- wangwantong2013-01-04我原来做过这个,还挺好做的,值得一做
hqcchina
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功