二叉树的函数声明
Posted 小潘的CS学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的函数声明相关的知识,希望对你有一定的参考价值。
前面我们介绍了二叉树的一些性质,在此我们开始实现二叉树的一些函数.跟之前一样,我们还是从函数声明开始(status.h 头文件和 bitree 头文件):
/*对一些基本状态值的定义*/
typedef int Status; //Status的类型为int 表示某种状态
typedef char ElemType; //元素的类型为char
typedef struct BiTreeNode {
ElemType data;
struct BiTreeNode* lchild;
struct BiTreeNode* rchild;
}BiTreeNode, * BiTree;
BiTree AskNode(ElemType data); //申请结点的函数
void PreOrderCreate_str(BiTree& root, const char*& str); //以字符串形式先序创立二叉树
void PreOrderCreate_input(BiTree& root); //以输入的形式先序创立二叉树
void PreOrderTraverse(BiTree root); //先序遍历二叉树
void InOrderTraverse(BiTree root); //中序遍历二叉树
void PostOrderTraverse(BiTree root); //后序遍历二叉树
void InOrderTraverse_norecur(BiTree root); //非递归中序遍历二叉树
int NodeNums(BiTree root); //计算二叉树的结点数
int Depth(BiTree root); //求二叉树的深度
与顺序结构不同,二叉链表形式表示的二叉树有两个指针域,分别指向该结点的左子树和右子树(或者称左孩子和右孩子),另外还有一个数据存储,在此我们设为char类型.二叉树的操作基本是以递归函数的形式编写的,有关递归可以参考.递归需要注意的是,一定要有出口,即当函数满足某个条件后就不再调用自身从而逐级返回完成操作即可.因为递归函数执行时会大量操作栈空间,所以递归的空间损耗十分巨大.当出现死递归时,函数会占用大部分内存,因此在编写时需要注意.
以上是关于二叉树的函数声明的主要内容,如果未能解决你的问题,请参考以下文章
这是插入/创建二叉树的代码吗?但是 display() 函数没有显示任何东西?我错过了啥?