全文预览

数据结构课程设计二叉排序树的建立、插入、删除和查找

上传者:qnrdwb |  格式:doc  |  页数:12 |  大小:316KB

文档介绍
reeNode(x);//创建数据元素x的结点Р?else if(x<p->data)//在左子树插入Р Insert(x,p->leftChild);Р?else if(x>p->data)//在右子树插入Р Insert(x,p->rightChild);Р?else//结点x已存在Р{cout<<"结点已存在"<<endl;}Р}Рvoid BSTree::Delete(const int &k,BSTreeNode*&p){Р?BSTreeNode *temp;Р?if(p!=NULL)Р if(k<p->data)Р Delete(k,p->leftChild);若p的关键字大于k,则在p的左子树删除Р else if(k>p->data)Р Delete(k,p->rightChild);//若p的关键字小于k,则在p的右子树删除Р else if((p->leftChild!=NULL)&&(p->rightChild!=NULL))Р {temp=Min(p->rightChild);Р p->data=temp->data;Р Delete(p->data,p->rightChild);}Р else{temp=p;Р if(p->leftChild==NULL)Р p=p->rightChild;Р else p=p->leftChild;Р delete temp;}Р}Рvoid BSTree::PreOrder(BSTreeNode *r)//前序遍历二叉树的递归算法{Р?if(r!=NULL){Р cout<<r->data<<" ";Р PreOrder(r->leftChild);Р PreOrder(r->rightChild);Р?}Р}Рvoid BSTree::InOrder(BSTreeNode *r)//中序遍历二叉树的递归算法{

收藏

分享

举报
下载此文档