求代码——二叉树——要C语言的

来源:百度知道 编辑:UC知道 时间:2024/09/21 02:41:02
条件:已知其先根周游序列、对称周游序列
要求:
 构造出对应的二叉树。
 计算该二叉树的高度和叶子接点个数;
 给出后根周游序列;

提示:已知的先根周游序列、对称周游序列最好能够从文件读入,或者干脆写到程序里面,不要每次都从键盘输入。
请高手就题目编一个吧!在忙高数,无暇顾及算法,请大家理解支持,帮一把

#include <stdio.h>
#include <stdlib.h>
#define STACK_MAX_SIZE 30
#define QUEUE_MAX_SIZE 30
#ifndef elemType
typedef char elemType;
#endif
/************************************************************************/
/* 以下是关于二叉树操作的11个简单算法 */
/************************************************************************/
struct BTreeNode{
elemType data;
struct BTreeNode *left;
struct BTreeNode *right;
};

/* 1.初始化二叉树 */
void initBTree(struct BTreeNode* *bt)
{
*bt = NULL;
return;
}

/* 2.建立二叉树(根据a所指向的二叉树广义表字符串建立) */
void createBTree(struct BTreeNode* *bt, char *a)
{
struct BTreeNode *p;
struct BTreeNode *s[STACK_MAX_SIZE];/* 定义s数组为存储根结点指针的栈使用 */
int top = -1; /* 定义top作为s栈的栈顶指针,初值为-1,表示空栈 */
int k; /* 用k作为处理结点的左子树和右子树,k = 1处理左子树,k = 2处理右子树 */
int i = 0; /* 用i扫描数组a中存储的二叉树广义表字符串,初值为0 */