#include<stdio.h>
#include<stdlib.h>
#define STACKINITSIZE 100
#define STACKINCREASESIZE 20
typedef char ElemType;
//树结构
typedef struct tree
{
ElemType data;
struct tree * lchild;
struct tree * rchild;
unsigned int isOut; //专为后序遍历设置的,0为不需要被输出,1为需要被输出
}TreeNode,*Tree;
//栈结构
typedef struct stack
{
Tree * base;
Tree * top;
int stacksize;
}Sqstack;
/*****************栈的操作声明********************/
//初始化栈
void InitStack( Sqstack &s );
//元素入栈
void Push( Sqstack &s, Tree e );
//获得栈顶元素
void GetTop( Sqstack s, Tree &e );
//弹出栈顶元素
void Pop( Sqstack &s, Tree &e );
//判断栈是否为空,为空返回1,否则返回0
int StackEmpty( Sqstack s );
/*****************栈的操作声明********************/
/*****************树的操作声明********************/
//创建树,以先序序列建立树
void CreateTree(Tree &t);
//递归先序遍历
void PreOrder(Tree t);
//非递归先序遍历
void PreOrder1(Tree t);
//递归中序遍历
void InOrder(Tree t);
//非递归中序遍历
void InOrder1(Tree t);
//递归后序遍历
C语言实现二叉树的递归和非递归算法的基本操作
最新推荐文章于 2021-05-25 10:03:37 发布
本文详细介绍了如何使用C语言实现二叉树的基本操作,包括递归和非递归两种算法。通过实例解析了二叉树的插入、删除、遍历等操作,帮助读者深入理解数据结构与算法的应用。
摘要由CSDN通过智能技术生成