大家好,今天小编关注到一个比较有意思的话题,就是关于c语言二叉树的问题,于是小编就整理了3个相关介绍c语言二叉树的解答,让我们一起看看吧。
- 创建二叉树是怎么输入?
- 已知一棵二叉树的前序序列和中序序列分别是ABCDEFGHIJ和BAEDCHGIFJ,构造二叉树,并写出其后序序列?
- 二叉树前序遍历abdgcef中序遍历dgbaechf后序遍历怎么求?
创建二叉树是怎么输入?
void CreateTree(BTree *T){char c;c=getchar();getchar();//lchild);(*T)->data=c;CreateTree(&(*T)->rchild);}}输入为(只是一个例子)先序输入二叉树:ab#C###先序遍历:a b C先序遍历(非递归):a b C中序遍历:b C a中序遍历(非递归):b C a后序遍历:C b a后序遍历(非递归):C b a层次遍历(链式):a b C层次遍历(顺序):a b CPress any key to continue
已知一棵二叉树的前序序列和中序序列分别是ABCDEFGHIJ和BAEDCHGIFJ,构造二叉树,并写出其后序序列?
这是递归算法。
前序第一个必定是根,根就是A,
从中序中就能分出左、右子树了:B和EDCHGIFJ,这是中序
就可据此从前序中分出左、右子树了:B和CDEFGHIJ,这是前序了。
(图片来源网络,侵删)
这样一个问题变成了两个同样的小问题了,递归下去不就解决了。
多动动脑筋就出来了
二叉树前序遍历abdgcef中序遍历dgbaechf后序遍历怎么求?
其实很简单 跟着我的思路来。
(图片来源网络,侵删)
到此,以上就是小编对于c语言二叉树的问题就介绍到这了,希望介绍关于c语言二叉树的3点解答对大家有用。
版权声明:本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。