01/10/2018, 00:35

Tính tổng trong 1 lần diệt Cây Nhị Phân!

Anh chị cho em hỏi có cách làm tính tổng được các giá trị của nút trong 1 lần diệt , mà không cần phải lưu các nút của cây vào ( như danh sách liên kết ) để tính tổng không ạ ?

Tynk Huynk viết 02:44 ngày 01/10/2018

Dùng giải thuật Depth First Search hoặc Breadth First Search. Theo mình thì dùng cái thứ nhất dễ hơn.
Bạn học cây Nhị Phân chắc cũng biết 2 cái giải thuật này nhỉ ?

Khang Việt viết 02:50 ngày 01/10/2018

mình đã thử 2 cách rồi , nhưng không ra

Tynk Huynk viết 02:37 ngày 01/10/2018

Bạn post code lên đi, có thể code của bạn gặp vấn đề gì chăng ?

Khang Việt viết 02:43 ngày 01/10/2018
int sumTree(BstNode *root) {
	int result = 0;
	if (root == NULL)
		return 0;
	else {
		result += root->data;
		sumTree(root->left);
		sumTree(root->right);
	};
	return result;
}

Code của mình

Gió viết 02:35 ngày 01/10/2018

sumTree của left right bạn phải cộng vào result nữa chứ

Khang Việt viết 02:47 ngày 01/10/2018

em cảm ơn anh , em hiểu ra vấn đề rồi

Tynk Huynk viết 02:40 ngày 01/10/2018

À, thì ra phương thức của bạn dùng đệ quy
Phương thức này gập 1 vấn đề là: giả sử mình bắt đầu gọi đệ quy với tham số là root thì kết quả trả về là data của root thôi còn hàm: [quote=“Khang_Viet, post:5, topic:37411”]
sumTree(root->left);
sumTree(root->right);
[/quote]

2 phương thức trên bạn gọi nhưng không lấy giá trị trả về của chúng thì sao cộng tiếp được

Bài liên quan
0