1. 程式人生 > >二叉樹按層遍歷列印的演算法(c/c++)

二叉樹按層遍歷列印的演算法(c/c++)

void LevelOrder(BTree T, int cnt)
{
    BTree level = malloc(sizeof(struct BTNode)*cnt);
    if(level==NULL) return;
    int i=0,rear=0;
    if(cnt==0) return;
    for(i=0; i<cnt; i++){
        printf("%c ",T[i].data);
        if(T[i].lchild) level[rear++]=*T[i].lchild;
        if(T[i].rchild) level[rear++]=*T[i].rchild;
    }
    printf("\n");
    LevelOrder(level, rear);
    free(level);
} 

main()函式中呼叫LevelOrder(T,1)