非递归方法中序遍历二叉树
来源:互联网 发布:js防水涂料 施工方法 编辑:程序博客网 时间:2024/06/05 07:16
typedef char BTreeData;
// 二叉树的结点
typedef struct _btreeNode
{
BTreeData data;
struct _btreeNode *lchild; // 指向左孩子结点的指针
struct _btreeNode *rchild; // 指向右孩子结点的指针
}BTreeNode;
// 二叉树
typedef struct _btree
{
BTreeNode *root; // 指向二叉树的根节点
int count; // 记录二叉树结点的个数
}BTree;
BTree *Create_BTree()
{
BTree *btree = (BTree*)malloc(sizeof(BTree)/sizeof(char));
if (btree == NULL)
return NULL;
btree->count = 0;
btree->root = NULL;
return btree;
}
//非递归中序遍历
void mid_order (BTreeNode *node)
{
if (node == NULL)
{
errno = ERROR;
return;
}
LinkStack *Stack = Create_Stack ();
BTreeNode *tmp = node; //指向当前节点
while (tmp)
{
Push (Stack,tmp);
if (tmp->lchild)
{
tmp = tmp->lchild;
continue;
}
tmp = tmp->rchild;
while(StackEmpty(Stack) != TRUE && tmp == NULL)
{
Pop (Stack,&tmp);
printf("%4c",tmp->data);
tmp = tmp->rchild;
}
}
}
- 非递归方法,二叉树的中序遍历
- 中序遍历二叉树的非递归方法
- 非递归方法中序遍历二叉树
- 【二叉树遍历】中序------非递归
- 非递归中序遍历二叉树
- 中序遍历二叉树 [非递归]
- 非递归中序遍历二叉树
- 非递归中序遍历二叉树
- 二叉树遍历(先序遍历、中序遍历、后序遍历)——递归方法和非递归方法
- 中序遍历二叉树(递归 & 非递归)
- 二叉树的中序递归,非递归遍历
- 二叉树先序遍历,中序遍历,后序遍历递归非递归方法
- 二叉树的非递归遍历方法
- 非递归的方法遍历二叉树
- 二叉树非递归遍历方法总结
- 非递归遍历二叉树的方法
- 二叉树的非递归遍历方法
- 二叉树非递归遍历方法
- 模拟实现strstr函数
- 证垂直
- 【linux is not Unix】linux账户管理和用户组管理
- 非递归方法前序遍历二叉树
- 高斯模糊
- 非递归方法中序遍历二叉树
- js中的闭包
- 从零开始学Vue(零)开天辟地
- Reactjs
- c/c++重要函数总结
- solr在windows和linux下的安装和配置
- Java解析HTML之HTMLParser使用与详解
- 非递归方法后序遍历二叉树
- 杨辉三角之二