欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构二叉排序树操作源代码(7页).doc

    • 资源ID:36345423       资源大小:24.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构二叉排序树操作源代码(7页).doc

    -数据结构二叉排序树操作源代码:#include<iostream>using namespace std;#define TRUE 1;#define FALSE 0;typedef int T;const maxsize=50;template <class T>struct NodeT key;/*.*/;template <class T>struct bitreeNode<T> data; bitree<T> *lchild;bitree<T> *rchild;template <class T>class BSTreepublic:Node<T> *ST;int len; /无素个数bitree<T> *t;/根指针bitree<T> *f;/根指针的双亲指针bitree<T> *p;/指向查找路径上最后访问的节点BSTree();/构造函数BSTree();/析构函数void SearchBST(bitree<T> *t,T key);/二叉排序树查找void InsertBST(bitree<T> *(&t),Node<T> e);/元素插入int DeleteBST(bitree<T> *(&t),T key);/二叉排序树中元素删除int Delete(bitree<T> *(&p);/void DeleteElem(T key);/查找表元素删除void InDisplay(bitree<T> *t);/中序遍历二叉排序树void Display();/查找表显示;template <class T>BSTree<T>:BSTree()/构造函数,初始化查找表ST=new Node<T>maxsize;/顺序存放查找表len=0;t=NULL;/查找树初始化template <class T>BSTree<T>:BSTree()/析构函数,销毁查找表delete ST; len=0;delete t;cout<<"成功销毁二叉排序树n"template <class T>void BSTree<T>:SearchBST(bitree<T> *t,T key)/元素查找 if(t=NULL | key=t->data.key)if(key=t->data.key) cout<<"找到"<<key<<"的节点"<<endl;elsecout<<"不存在"<<key<<"的节点"<<endl;else if(key<t->data.key)SearchBST(t->lchild,key);elseSearchBST(t->rchild,key);template <class T>void BSTree<T>:InsertBST(bitree<T> *(&t),Node<T> e)/元素插入STlen=e;len+; p=t; while(p)if(p->data.key=e.key)cout<<"二叉排序树中已经存在值为:"<<e.key<<"的节点n"exit(1);f=p;if(e.key<p->data.key)p=p->lchild;elsep=p->rchild;p=new bitree<T>p->data=e;p->lchild=p->rchild=NULL;if(t=NULL)t=p;elseif(e.key<f->data.key)f->lchild=p;elsef->rchild=p;template <class T>int BSTree<T>:DeleteBST(bitree<T> *(&t),T key)/ 元素删除if(!t) cout<<"二叉树为空,无法删除n" return FALSE;else if(key=t->data.key)return Delete(t);else if(key<t->data.key) return DeleteBST(t->lchild,key);elsereturn DeleteBST(t->rchild,key);template <class T>int BSTree<T>:Delete(bitree<T> *(&p)bitree<T> *q,*s;if(!p->rchild)q=p;p=p->lchild;delete q;cout<<"成功删除"<<endl;else if(!p->lchild)q=p;p=p->rchild;delete q;cout<<"成功删除"<<endl;elseq=p;s=p->lchild;while(s->rchild)q=s;s=s->rchild;p->data=s->data; if(q!=p)q->rchild=s->lchild; elseq->lchild=s->lchild; delete s; cout<<"成功删除"<<endl;return TRUE;template <class T>void BSTree<T>:DeleteElem(T key)/顺序表元素删除 for(int i=0;i<len && STi.key!=key;i+);if(i<len)for(int j=i+1;j<len;j+)STi=STj;len-;template <class T>void BSTree<T>:InDisplay(bitree<T> *t)/中序遍历输出if(t!=NULL)InDisplay(t->lchild);cout<<t->data.key<<" " InDisplay(t->rchild);template <class T>void BSTree<T>:Display()/输出查找表中的数据元素cout<<"查找表中的数据元素关键字依次为:n"for(int i=0;i<len;i+)cout<<STi.key<<" "cout<<endl;void main()int m,l,i;BSTree<int> a;do cout<<"- 二叉排序树的基本操作-"<<endl; cout<<"- 1. 创建查找表 -n" <<"-2. 插入元素-n" <<"- 3. 删除元素 -n" <<"- 4. 查找元素 -n" <<"- 5. 中序遍历二叉排序树输出-n" <<"- 6. 查找表输出 -n" <<"- 7. 退出 -n" <<"请选择操作:" cin>>m; if(m=1)Node<T> e;cout<<"输入要插入的数据元素个数n"cin>>l;cout<<"输入"<<l<<"个不同的数据元素n"for(i=0;i<l;i+)cin>>e.key;a.InsertBST(a.t,e); else if(m=2)Node<T> e;cout<<"输入要插入的数据元素n"cin>>e.key;a.InsertBST(a.t,e); else if(m=3)T key;cout<<"输入要删除的数据元素:"cin>>key;a.DeleteBST(a.t,key);a.DeleteElem(key); else if(m=4)T key;cout<<"输入查找的数据元素: "cin>>key;a.SearchBST(a.t,key);else if(m=5)cout<<"中序遍历的输出结果为:n"a.InDisplay(a.t);cout<<endl;else if(m=6)cout<<"二叉排序树输出:n"a.Display();cout<<endl;else if(m=7)cout<<"结束运行!n"elsecout<<"输入代码非法,代码在0-7之间,请重新输入"<<endl;/cout<<endl;cout<<"请继续选择操作"<<endl;while(m!=7);-第 7 页-

    注意事项

    本文(数据结构二叉排序树操作源代码(7页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开