c程序课程设计——关于二叉树的操作

来源:百度知道 编辑:UC知道 时间:2024/06/09 01:47:52
基本要求:
1. 已知二叉树的前序、中序序列,恢复此二叉树;
2. 求二叉树高度、分支结点数和叶子结点数;
3. 插入结点到指定位置、删除指定结点;
4. 将二叉树中所有结点的左右子树交换;
5. 对二叉树进行层序、非递归中序遍历。
抱歉了,各位大虾,小弟是在没办法了,这个号就这么点分。大家见谅。多帮帮小弟。小虾在此谢大家了

我说点题外的 这里起码要10个函数 你不觉得会把人下走啊啊啊 !! 我的实验内容 就这么多了
/*
包括二叉树的创建和遍历
*/
//头文件
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
//预定义宏常量
#define OK 1
#define ERROR -1
#define ENDFLAG '#'
typedef char TelemType;
typedef int status;
//二叉树的存储结构
typedef struct BiTNode{
TelemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//全局变量,表示叶子个数
int m=0;
//二叉树的创建
status CreateBiTree(BiTree *T)
{// 先序创建
TelemType ch;
scanf("%c",&ch);
if(ch==ENDFLAG) *T=NULL;
else {
if(!(*T=(BiTNode *)malloc(sizeof(BiTNode))))
{
printf("\nOut of space.");
getch();
exit(0);
}
(*T)->data=ch; //生成根结点
CreateBiTree(&((*T)->lchild));//左子树
CreateBiTree(&((*T)->rchild));//右子树
}
return OK;
}