二叉树的遍历---栈实现

来源:互联网 发布:大数据产业创新研究院 编辑:程序博客网 时间:2024/06/05 09:38

二叉树的遍历简单的方法是递归,但是大量的递归还是比较消耗时间的,而使用栈方法就快速多了,虽然会有需要一定的空间缓存

> 定义数据结构typedef struct BiTNode{    int nValue;    struct BiTNode *pLChild;    struct BiTNode *pRChild;}BiTNode, *PBiTree;void PreOrder(PBiTree pRoot){    PBiTree pStack[100];    int nTop = 0;    PBiTree pCur = pRoot;    while (nTop > 0 || pCur != NULL)    {        while (pCur != NULL)        {//访问结点pCur所有的左孩子             Visit(pCur);            pStack[nTop++] = pCur;            pCur = pCur->pLChild;        }        if (nTop > 0)        {//出栈 访问右孩子            nTop--;            pCur = pStack[nTop];            pCur = pCur->pRChild;        }    }}
1 0
原创粉丝点击