非递归方法前序遍历二叉树
来源:互联网 发布:js防水涂料 施工方法 编辑:程序博客网 时间:2024/06/05 06:51
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 pre_order (BTreeNode *node)
{
if (node == NULL)
{
errno = ERROR;
return;
}
LinkStack *Stack = Create_Stack ();
BTreeNode *tmp = node; //指向当前节点
while (tmp)
{
printf("%4c",tmp->data);
Push (Stack,tmp);
if (tmp->lchild)
{
tmp = tmp->lchild;
continue;
}
while(StackEmpty(Stack) != TRUE)
{
Pop (Stack,&tmp);
if(tmp = tmp->rchild)
{
break;
}
}
}
}
}
- 非递归方法前序遍历二叉树
- 非递归前序遍历二叉树
- 二叉树的前序遍历(递归+非递归)
- 43.递归和非递归俩种方法实现二叉树的前序遍历。
- 递归和非递归俩种方法实现二叉树的前序遍历
- 递归和非递归俩种方法实现二叉树的前序遍历
- 请用递归和非递归俩种方法实现二叉树的前序遍历。
- 二叉树非递归前序和中序遍历
- 二叉树的非递归前序、后序遍历
- [算法]二叉树的非递归前序遍历算法
- 前序遍历二叉树非递归写法
- 非递归前序遍历二叉树(图解)
- 二叉树的非递归前序遍历
- lintcode-二叉树的前序遍历(非递归)-66
- 二叉树的非递归前序遍历
- 二叉树 之 非递归前序遍历
- 二叉树的前序遍历(非递归)
- 二叉树的前序遍历---非递归实现
- 欧几里得扩展
- 李白打酒
- 模拟实现strstr函数
- 证垂直
- 【linux is not Unix】linux账户管理和用户组管理
- 非递归方法前序遍历二叉树
- 高斯模糊
- 非递归方法中序遍历二叉树
- js中的闭包
- 从零开始学Vue(零)开天辟地
- Reactjs
- c/c++重要函数总结
- solr在windows和linux下的安装和配置
- Java解析HTML之HTMLParser使用与详解