[C] 884 Đếm số lượng nút nằm ở tầng cao hơn tầng thứ k của cây

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

  • 884 Đếm số lượng nút nằm ở tầng cao hơn tầng thứ k của cây

Code

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

//884 Đếm số lượng nút nằm ở tầng cao hơn tầng thứ k trên cây
int ChieuCaoCay(Tree c)
{
    if (c!=NULL)
    {
        int a = ChieuCaoCay(c->pLeft);
        int b = ChieuCaoCay(c->pRight);
        int max = (a>b)?a:b;
        return 1 + max;
    }
    return 0;
}
int DemTangThuk(Tree c, int k)
{
    if (c!=NULL)
    {
        k--;
        int a = DemTangThuk(c->pLeft,k);
        int b = DemTangThuk(c->pRight,k);
        if (k==0)
            return 1 + a + b;
        return a + b;
    }
    return 0;
}
int Dem(Tree c, int k)
{
    if (c!=NULL)
    {
        int DemSoLuong = 0;
        for (int i=k;i<ChieuCaoCay(c); i++)
        {
            DemSoLuong += DemTangThuk(c,i);
        }
        return DemSoLuong;
    }
    return 0;
}

Link source:

2 responses to “[C] 884 Đếm số lượng nút nằm ở tầng cao hơn tầng thứ k của cây”

  1. hongtam says :

    những bài làm của bạn rất hay .hiih.mh dang lam bai nhưng hok hiểu lên google tìm thì thấy bài cua ban nó giúp cho mh nhiều lấm.thank ban nha

Leave a comment