码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的中序非递归遍历思想

时间:2016-01-13 19:58:08      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:二叉树   遍历   

#include<stdio.h>

#include<stdlib.h>

#define OK 1

#define  ERROR 0

typedef struct node

{

    int data;

    struct node *lchild;

    struct node *rchild;

} Node,Tree;

/*

www.quzhuanpan.com

解释全来自去转盘网,转载请告知

*/

typedef Node *ElemType;

typedef Tree *AnoElemType;


void creatBITree(AnoElemType &T,int array[],int n,int i)//i应该从零开始

{

    if(array[0]==‘0‘||i>n) T=NULL;

    else

    {

        if(!(T=(ElemType)malloc(sizeof(node))))

        {

            exit(0);

        }

        T->data=array[i];

        creatBITree(T->lchild,array,n,i*2+1);

        creatBITree(T->rchild,array,n,i*2+2);

    }



}



void InOrderTraverse(AnoElemType &T)

{

    AnoElemType  p;

    ElemType data[100];

    int top=0;

    p=T;

    while(p||top!=0)

    {

        while(p!=NULL)

        {

            data[top++]=p;

            p=p->lchild ;

        }

        p=data[--top];

        printf("%d ",p->data );

        p=p->rchild ;

    }

}


int main(void)

{

    AnoElemType T;

    int array[1000], n,i;

    scanf("%d",&n);

    for(i=0; i<n; i++)

    {

        scanf("%d",&array[i]);

    }

    creatBITree(T,array,n-1,0);

    InOrderTraverse(T);

    return 0;

}


二叉树的中序非递归遍历思想

标签:二叉树   遍历   

原文地址:http://5912119.blog.51cto.com/5902119/1734721

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!