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

    2022年数据结构二叉排序树的基本操作参考 .pdf

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

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

    2022年数据结构二叉排序树的基本操作参考 .pdf

    数据结构实验报告院系 _ 专业_ 姓名 _林桢曦 _ 学号 _106052010235_ 电话 _ _级_班_年_月_日1实验题目(1)二叉排序树的基本操作(2)二叉树和Huffman 树2需求分析(1)编写二叉排序树的基本操作函数,调用上述函数实现初始化,插入元素,查找元素,删除元素等操作。(2)编写二叉树的基本操作函数,用递归方法分别实现先序,中序和后序遍历二叉树。3概要设计7.1ADT tree 数据对象: D=ai|aiIntegerSet,i=0,1,2,n,n 0 结构关系: R=|ai,ai+1 D 基本操作:SearchNode(TREE *tree, int key,TREE *pkpt,TREE *kpt) 操作前提: tree 是一个已初始化的二叉树操作结果:查找树根结点,键值赋给key,并返回 key 结点的父节点指针和key 结点的指针InsertNode(TREE *tree,int key) 操作前提: tree 是一个已初始化的二叉树操作结果:将key 值插入 tree 中DeleteNode(TREE *tree,int key) 操作前提:二叉树tree 已存在操作结果:将二叉树中的元素值为key 的元素删除OutputTree(TREE *tree) 操作前提:二叉树tree 已存在操作结果:将二叉树中的元素值输出 (1)本程序包含7 个函数:主函数 main() 进栈函数 pop() 出栈函数 push() 查找函数 SearchNode() 插入函数 InsertNode() 删除函数DeleteNode() 显示函数OutputTree() 各函数间调用关系如下:主函数调用其他函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义2 (2)主函数的伪码main() 定义各个变量;输入结点个数;For 循环输入元素值;输出元素值;输入删除的元素值;显示元素值; 7.2 ADT tree 数据对象: D=ai|aiIntegerSet,i=0,1,2,n,n 0 结构关系: R=|ai,ai+1 D 基本操作:CreateBiTree(BiTree &T) 操作前提: T 是一个已初始化的二叉树操作结果:创建一颗二叉树re_PreOrder(BiTree &tree) 操作前提: tree 是一个已初始化的二叉树操作结果:先序遍历,递归方法re_MidOrder(BiTree &tree) 操作前提:二叉树tree 已存在操作结果:中序遍历,递归方法re_PostOrder(BiTree &tree) 操作前提:二叉树tree 已存在操作结果:后序遍历,递归方法 本程序包含5个函数:主函数 main() 创建二叉树函数CreateBiTree() 先序函数 re_PreOrder() 中序函数re_MidOrder() 后序函数 re_PostOrder() 各函数间调用关系如下:主函数调用其他函数主函数的伪码main() 定义变量 BiTree T; 调用 CreateBiTree 函数;调用re_PreOrder 函数;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义3 调用re_MidOrder 函数;调用 re_PostOrder 函数; 4详细设计(1)7.1 类型定义typedef struct tree int data; struct tree *lchild; struct tree *rchild; TREE; typedef struct stack TREE *t; int flag; struct stack *link; STACK; 7.2 类型定义typedef struct BiTNode char data; struct BiTNode *lchild,*rchild; *BiTree; 5调试分析调试时遇到空指针问题,部分值未赋值。6使用说明7.1 首先先输入结点元素个数,然后按要求输入元素值,屏幕显示构造后的树结构,之后屏幕提示要删除的元素,按要求输入之后,屏幕显示删除成功,并显示树结构。7.2 首先按要求输入二叉树的元素值,然后程序调用函数在屏幕显示先序,中序,后序排序的序列。7测试结果7.1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义4 7.2 8. 参考文献数据结构9附录7.1 #include #include #include typedef struct tree int data; struct tree *lchild; struct tree *rchild; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义5 TREE; typedef struct stack TREE *t; int flag; struct stack *link; STACK; void push(STACK *top,TREE *tree) STACK *p; p=(STACK *)malloc(sizeof(STACK); p-t=tree; p-link=*top; *top=p; void pop(STACK *top,TREE *tree) STACK *p; if(*top=NULL) *tree=NULL; else *tree=(*top)-t; p=*top; *top=(*top)-link; free(p); void SearchNode(TREE *tree, int key,TREE *pkpt,TREE *kpt) *pkpt=NULL; *kpt=tree; while(*kpt!=NULL) if(*kpt)-data=key) return; *pkpt=*kpt; if(keydata) *kpt=(*kpt)-lchild; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义6 *kpt=(*kpt)-rchild; int InsertNode(TREE *tree,int key) TREE *p,*q,*r; SearchNode(*tree,key,&p,&q); if(q!=NULL) return 1; if(r=(TREE *)malloc(sizeof(TREE)=NULL) return -1; r-data=key; r-lchild=r-rchild=NULL; if(p=NULL) *tree=r; else if(p-datakey) p-lchild=r; else p-rchild=r; return 0; int DeleteNode(TREE *tree,int key) TREE *p,*q,*r; SearchNode(*tree,key,&p,&q); if(q=NULL) if(q-lchild=NULL) *tree=q-rchild; else *tree=q-lchild; r=q-lchild; while(r-rchild!=NULL) r=r-rchild; r-rchild=q-rchild; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义7 else if(q-lchild=NULL) if(q=p-lchild) p-lchild=q-rchild; else p-rchild=q-rchild; else r=q-lchild; while(r-rchild!=NULL) r=r-rchild; r-rchild=q-rchild; if(q=p-lchild) p-lchild=q-lchild; else p-rchild=q-rchild; free(q); return 0; void OutputTree(TREE *tree) STACK *top; int d=0,n=0,m=0; top=NULL; while(tree!=NULL|top!=NULL) while(tree!=NULL) push(&top,tree); top-flag=+d; if(mlchild; if(top!=NULL) d=top-flag; n+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义8 pop(&top,&tree); printf(%d,tree-data); fflush(stdout); tree=tree-rchild; void main() TREE *t; int i,n,m; t=NULL; printf( 请输入树结点个数:); scanf(%d,&m); printf( 请输入树结点元素:); for(i=0;im;i+) scanf(%d,&n); InsertNode(&t,n); printf( 树结构为: n); OutputTree(t); printf(n 请输入要删除的树结点元素:); scanf(%d,&i); DeleteNode(&t,i); printf( 删除成功,树结构为:n); OutputTree(t); printf(n); 7.2 #include #include typedef struct BiTNode char data; struct BiTNode *lchild,*rchild; *BiTree; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义9 void CreateBiTree(BiTree &T) char ch; scanf(%c,&ch); if(ch= )T=NULL; else BiTNode *p=(BiTNode *)malloc(sizeof(BiTNode); T=p; T-data=ch; CreateBiTree(T-lchild); CreateBiTree(T-rchild); void re_PreOrder(BiTree &tree) if(tree) printf(%c ,tree-data); re_PreOrder(tree-lchild); re_PreOrder(tree-rchild); int re_MidOrder(BiTree &tree) if(tree) re_MidOrder(tree-lchild); if(tree-data) printf(%c ,tree-data); re_MidOrder(tree-rchild); return 1; else return 0; int re_PostOrder(BiTree &tree) if(tree) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 福建师范大学物光院计算机教学辅导讲义10 re_PostOrder(tree-lchild); re_PostOrder(tree-rchild); if(tree-data) printf(%c ,tree-data); return 1; else return 0; void main() BiTree T; printf( 构造一个二叉树:); CreateBiTree(T); printf( 先序序列为 :); re_PreOrder(T); printf(n 中序序列为 :); re_MidOrder(T); printf(n 后序序列为 :); re_PostOrder(T); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

    注意事项

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

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




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

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

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

    收起
    展开