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

    二叉树的遍历学习心得(四).doc

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

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

    二叉树的遍历学习心得(四).doc

    二叉树的遍历学习心得 数据结构实验报告 实验三名称:二叉树 姓名:高宁鑫学号:202117525班级:2021175专业:数学与应用数学 指导老师:黄春艳 一、实验目的 (1)掌握二叉树的定义和存储表示,学会建一棵二叉树的方法(2)掌握二叉树的遍历(前序,中序,后序)采用递归和非递归方法 二、实验要求(1)建二叉树(2)遍历 三、实验原理 (1)利用递归原理建立一棵二叉链表的二叉树: 为了让每个结点确认是否有左右孩子,对原二叉树进行扩展,将二叉树中的每个结点的空指针引出一个虚结点,其值为一个特定值“.”获得一个扩展二叉树,通过遍历序列确定一棵二叉树。 (2)进行二叉树的遍历。指从根结点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次。 四、实验环境 windowsxp系统,vc6软件 五、算法实现及步骤实现的主要算法: (1)首先定义二叉树的存储形式,这里使用了二叉链表typedefstructnode/创建结点类型结构体datatypedata;structnode*lchild;structnode*rchild;bitnode,*bittree;(2)建立一个二叉树 voidcreatbitree(bittree*bt)/用扩展前序遍历序列创建二叉树如果是当前树根置为空否则申请一个新节点/charch;ch=getchar;if(ch=.)*bt=null;else*bt=(bittree)malloc(sizeof(bitnode);(*bt)->data=ch;creatbitree(&(*bt)->lchild);creatbitree(&(*bt)->rchild);(3)建立递归方法二叉树的前序、中序、后序遍历 voidpreorder(bittreeroot)/前序遍历二叉树的递归算法if(root。=null)visit(root->data);preorder(root->lchild);preorder(root->rchild);voidinorder(bittreeroot)/中序遍历二叉树的递归算法if(root。=null)inorder(root->lchild);visit(root->data);inorder(root->rchild);voidpostorder(bittreeroot)/后序遍历求二叉树的递归算法if(root。=null)postorder(root->lchild);postorder(root->rchild);visit(root->data);(4)建立非递归方法二叉树的前序、中序、后序遍历voidpreorder2(bintree*root)/非递归前序遍历stacks;bintree*p=root;while(p。=null|。s.empty)while(p。=null)coutlchild;if(。s.empty)p=s.top;coutisfirst=true;s.push(btn);p=p->lchild;if(。s.empty)temp=s.top;s.pop;if(temp->isfirst=true)/表示是第一次出现在栈顶temp->isfirst=false;s.push(temp);p=temp->btnode->rchild;else/第二次出现在栈顶coutdatalchild);creatbitree(&(*bt)->rchild);voidvisit(charch)/访问根节点printf(”%c”,ch);voidpreorder(bittreeroot)/前序遍历二叉树的递归算法if(root。=null)visit(root->data);preorder(root->lchild);preorder(root->rchild);voidinorder(bittreeroot)/中序遍历二叉树的递归算法if(root。=null)inorder(root->lchild);visit(root->data);inorder(root->rchild);voidpostorder(bittreeroot)/后序遍历求二叉树的递归算法if(root。=null)postorder(root->lchild);postorder(root->rchild);visit(root->data);voidmainbittreet;intlayer;layer=0;printf(”请输入二叉树中的元素(以扩展前序遍历序列输入,其中.代表空子树):n”);creatbitree(&t);printf(”前序遍历序列为:”);preorder(t);printf(”n中序遍历序列为:”);inorder(t);printf(”n后序遍历序列为:”);postorder(t); 非递归方法 #include#include#includeusingnamespacestd;typedefstructnodechardata;structnode*lchild,*rchild;bintree;typedefstructnode1bintree*btnode;boolisfirst;btnode;voidcreatbintree(char*s,bintree*&root)/创建二叉树,s为形如a(b,c(d,e)形式的字符串inti;boolisright=false;stacks1;/存放结点stacks2;/存放分隔符bintree*p,*temp;root->data=s0;root->lchild=null;root->rchild=null;s1.push(root);i=1;while(idata=si;p->lchild=null;p->rchild=null;temp=s1.top;if(isright=true)temp->rchild=p;cout 第 4 页 共 4 页免责声明:图文来源于网络搜集,版权归原作者所以若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。

    注意事项

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

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




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

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

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

    收起
    展开