[C] 875 xuất nút theo thứ tự từ tầng 0 đến h-1

Tác giả:

  • Trần Hán Huy – tranhanhuy.wordpress.com

Sách:

  • Bài tập kĩ thuật lập trình C/C++ – Nguyễn Tấn Trần Minh Khang

Đề bài

  • 875* Viết hàm xuất các nút trên cây theo thứ tự từ tầng 0 đến tầng h-1 của cây (h là chiều cao cây)

Code

/*Nick yahoo: conloyal*/
/*Soft: visual studio 2008*/

//875* Viết hàm xuất các nút trên cây theo thứ tự tầng 0 đến tầng h-1 của cây (với h là chiều cao của cây)
int ChieuCaoCay(Tree c)
{
    if (c == NULL)
        return 0;
    int a = ChieuCaoCay(c->pLeft);
    int b = ChieuCaoCay(c->pRight);
    int max = (a>b)?a:b;
    return 1 + max;
}

void XuatTheoTangK(Tree c, int k)
{
    if (c!=NULL)
    {
        k--;
        if (c->pLeft != NULL)
            XuatTheoTangK(c->pLeft,k);
        if (k==0)
            printf(\"%4d\", c->iX);
        if (c->pRight != NULL)
            XuatTheoTangK(c->pRight,k);
    }
}
void Xuat(Tree c)
{
    int h = ChieuCaoCay(c);
    printf (\"\nChieu cao cay: %d\",h);
    for (int i=0; i<=h-1; i++)
    {
        printf(\"\n tang %d :\", i);
        XuatTheoTangK(c,i+1);
    }
}

Link source:

Leave a comment