01/10/2018, 15:51

Tính tổng của cây nhị phân tìm kiếm có điều kiện và không có điều kiện

Hi Anh/Chị !
Em mới học về cây nhị phân tìm kiếm, em muốn hỏi về vấn đề tìm tổng khi có đk và không có điều kiện.

Khi không có điều kiện, em viết như vậy :

    int Sum(TREE t)
    {
    	if (t == NULL)
    		return 0;
    	int a = Sum(t->left);
    	int b = Sum(t->right);
    	return a + b + t->element;
    }

Khi có điều kiện như là tổng của các node > 0 và <2018
Em viết như thế này :

int Sum(TREE t)
{
	if (t == NULL)
		return 0;
	int a = Sum(t->left);
	int b = Sum(t->right);
    if(t->element < 2018 && t->element > 0)
	return a + b + t->element;
 }

Thì sai ạ, Mà nếu em thêm dòng return a+b vào cuối thì đúng ạ.

    int Sum(TREE t)
    {
    	if (t == NULL)
    		return 0;
    	int a = Sum(t->left);
    	int b = Sum(t->right);
    if(t->element < 2018 && t->element > 0)
    	return a + b + t->element;
    	return a + b;
     }
rogp10 viết 18:04 ngày 01/10/2018

Vậy nếu t->element không thỏa thì bạn return gì VS sẽ warn “not all code paths return a value”.

Tuấn UIT viết 17:55 ngày 01/10/2018

Em biết nó return ra giá trị rác mà thường các giá trị rác có giá trị âm -xxxxxxxxxxxx. Mà lần này em thấy nó ra gía trị rác lớn hơn 0 nên em không biết có lỗi gì không ạ

rogp10 viết 17:52 ngày 01/10/2018

Khi đã gọi là giá trị rác thì rác nào cũng là rác.

Tuấn UIT viết 17:57 ngày 01/10/2018

Dạ, em cảm ơn ạ .

Bài liên quan
0