由于c语言没有c++的STL库,我们无法借助c++的stack库实现二叉树的非递归遍历,但是,我们完全可以自己打造一个c语言版的stack库。本篇博文就是借助我们之前在栈的链
式存储API http://blog.youkuaiyun.com/bbs375/article/details/52728358这篇博文实现的程序。当然,你也可以把它编译成动态库dll(可以参考如何封装自己的动态库应用案例http://blog.youkuaiyun.com/bbs375/article/details/52668322)放到自己的
工程项目中。
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include<stdio.h>
#include <string.h>
#include "linklist.h"
#include "linkstack.h"
//第一种表示方法 :二叉链表示法
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
} BiTNode,* BITree;
//中序递归遍历
void inOrder(BiTNode*root)
{
if (root==NULL)
{
return;
}
inOrd