首页 > 作文

C语言二叉树的遍历示例介绍

更新时间:2023-04-04 10:51:51 阅读: 评论:0

在本算法中先利用先序遍历创建了树,利用了递归的算法使得算法简单,操作容易,本来无printf(“%c的左/右子树:”, ch);的语句,但由于计算机需要输入空格字符来判断左右子树,为了减少人为输入的失误,特地加入这条语句,以此保证准确率。

#include<stdio.h>#include<stdlib.h>#define ok 1#define error 0#define overflow 3 我有一个坏习惯typedef intqq时尚签名 status;  typedef int boolean; typedef char telemtype; typedef struct bitnode{telemtype   data;struct bitnode *lchild, *rchild;}bitnode, *bitree; //创建二叉树函数 status createbitree(bitree &t){telemtype ch;scanf("%c", &ch);getchar();if(ch == ' '){t = null;}el {if( !(t=(bitree)malloc(sizeof(bitnode))))(exit(overflow));t->data = ch;printf("%c的左子树:", ch);createbitree(t->lchild);printf("%c的右子树:", ch);createbitree(t->rchild);}return ok;} //先序遍历函数status preordertraver(bitree t, status (* visit)(telemtype e)){if(t){if(visit(t->data)){if(preordertraver(t->lchild, visit)){if(preordertraver(t->rchild, visit)){return ok;               }            }         }return error;    }el中山孙文纪念公园 {return ok;}} //中序遍历函数status inordertraver(bitree t, status (* visit)(telemtype e)){if(t){if(preordertraver(t->lchild, visit) ){if(visit(t->data)){if(preordertraver(t->rchild, visit) ){return ok;           }   }   }return error;        }el {return ok;        }} //后序遍历函数status posordertraver(bitree t, status (* visit)(telemtype e)){if(t){if(preordertraver(t->lchild, visit) ){if(preordertraver(t->rchild, visit) ){if(visit(t->data)){return ok;}}}return error;}el {return ok;}}  //输出二叉树函数status printelement(telemtype e){printf("%c",e);return ok;} //主函数int main(){bitree t;printf("输入根结点:");createbitree(t);printf("先序遍历:\n");preordertraver(t, printelement);printf("\n");printf("中序遍历:\n");inordertraver(t, printelement);printf("\n");printf("后序遍历:\n");posordertraver(t, printelement);return 0;}

遍历操作有四种,其不同在于对根结点的访问顺序不同。在先序遍历中,首先访问根结点,然后递归地做左子树的先序遍历,然后是右子树的广东第二师范学院递归先序遍历。 在中序遍历中,递归地对左子树进行中序遍历,访问根结点,最后递归中序遍历右子树。在后序遍历中,递归地对左子树和右子树进行后序遍历,然后访问根结点。先序,中序,后序遍历就是对于根节点的访问顺序。

但无论哪种遍历方式,递归高中英语时态的方法是最简便,最直接,最简单的算法。

运行截图:

到此这篇关于c语言二叉树的遍历示例介绍的文章就介绍到这了,更多相关c语言二叉树内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 10:51:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/cb1c95a997bfb392c243612d491cef3e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C语言二叉树的遍历示例介绍.doc

本文 PDF 下载地址:C语言二叉树的遍历示例介绍.pdf

标签:遍历   子树   递归   结点
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图