本文主要是介绍基于先序遍历和中序遍历序列构建二叉树结构【C语言】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
<span style="font-size:24px;">//以下代码经过实际上机测试,如有不对,请指正,谢谢
#include <stdio.h>
#include <stdlib.h>
typedef struct binaryTreeNode{int value;struct binaryTreeNode *left;struct binaryTreeNode *right;
}binaryTreeNode;
//传入需要被构建的两个序列,preoder(先序遍历序列)、inoder(中序遍历序列)
//返回构造完成的二叉树根节点
binaryTreeNode *construct(int *preoder, int *inoder, int length)
{binaryTreeNode *constructcore(int *startPreoder, int *endPreoder, int *startInoder, int *endInoder);if(preoder == NULL || inoder == NULL || length <= 0)return 0;//如果传入的参数符合条件,则调用结构构造函数return constructcore(preoder, preoder+length-1, inoder, inoder+length-1);
}
//二叉树结构构造函数,传入两个序列的起始节点和结束节点,返回根节点
binaryTreeNode *constructcore(int *startPreoder, int *endPreoder, int *startInoder, int *endInoder)
{//先序遍历序列的第一个节点值为根节点,找到后建立根节点int rootValue =
这篇关于基于先序遍历和中序遍历序列构建二叉树结构【C语言】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!