1 / 15
文档名称:

数据结构B树.doc

格式:doc   大小:192KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构B树.doc

上传人:xiarencrh 2020/7/10 文件大小:192 KB

下载得到文件列表

数据结构B树.doc

文档介绍

文档介绍:数据结构课程设计实****报告题目:B树的表示及基本操作学号:姓名:任强年级:2011级学院:信息技术科学学院专业:计算机科学与技术完成日期::辛运帏题目B树的表示及基本操作(查找、插入、删除及图形化显示)要求参考书中的示例代码,以整数表示每个记录的关键字。为简单起见,每个记录可以只包含一个关键字(即其他的字段可以不定义)。从空树开始,依次输入各关键字,建立相应的B树。并实现B树中关键字的插入及删除。同时将树型显示在屏幕上。全部关键字插入完毕时显示树型,之后每完成一次插入或删除操作后也显示当前的树型。:windows7,VC++、查找、插入和删除等基本操作。从空树开始,利用键盘键入的关键字建立B树;在此基础上进行插入和删除操作。B树建立好以及完成插入和删除操作后进行B树的打印显示。同时,程序通过必要的提示和功能选择提供人机交互信息。利用B树类的私有函数声明提供了相关操作的封装性。,在人机交互的提示下通过键盘输入相关数据:待建B树的阶数m(大于等于3)、要输入的关键字的数目n以及关键字key(以-1为结束标志)(当所输入的关键字数目大于n,只插入前n个关键字建立B树,后面的关键字忽略)。所有要输入的数据均为整型。截图如下:,然后按照广义表形式输出B树。见上图。).B树结点结构体的声明:template<classT>structB_Node//B树结点类{ intk;//当前关键字个数 T*data;//保存关键字 B_Node<T>**b;//保存孩子结点 B_Node(intnum) { k=0; data=newT[num-1]; b=newB_Node<T>*[num]; }};2).B树类声明:template<classT>classB_Tree{ public: B_Tree() { root=NULL; } voidSet_order(intnum) {order=num;} B_Node<T>*getRoot()const {returnroot;} //查找、插入、删除公有函数声明 ResultCodeSearch(T&x)const; ResultCodeInsert(T&x); ResultCodeRemove(T&x); voidPrint(B_Node<T>*); intorder; B_Node<T>*root; private: //查找相关的私有函数声明 ResultCodeSearch(B_Node<T>*pc,T&x)const; ResultCodeSearchNode(B_Node<T>*pc,T&x,int&pos); //插入相关的私有函数声明 ResultCodeInsert(B_Node<T>*pc,T&x,T&median,B_Node<T>*&right); voidPushIn(B_Node<T>*pc,constT&x,B_Node<T>*right,intpos); voidSplitNode(B_Node<T>*pc,constT&x,B_Node<T>*q,intpos,T&median,B_Node<T>*&rHalf); //删除相关的私有函数声明 ResultCodeRemove(B_Node<T>*pc,T&x); voidCopyInPre(B_Node<T>*pc,intpos); voidRemoveData(B_Node<T>*pc,intpos); voidRestore(B_Node<T>*pc,intpos); voidMoveLeft(B_Node<T>*pc,intpos); voidMoveRight(B_Node<T>*pc,intpos); bine(B_Node<T>*pc,intpos);};B树类中函数的声明具有以下特点:查找、插入、删除都是由私有函数实现,并且通过一个公有函数作为外界接口方便函数的调用。这实现了类的封装性。3).函数返回结果ResultCode:枚举类型enumResultCode{NotPresent,ess,Overflow,Duplicate};此处的全局数据结构在之后的模板中均有使用,之后不再赘述。:B_Tree<int>tree;从键盘键入的关键字和关键字数组:intkey,array[20];3