30/09/2018, 21:07

CTDL và GT ai đó giúp em với

: đề bài em rút gọn lại như vầy :
nhập vào cây nhị phân tìm kiếm danh sách điểm thi đại học theo cấu trúc mã số là các ký tự và điểm thi ví dụ (G,20.25). khóa là mã số . in ra danh sách thí sinh theo thứ tự tăng dần của điểm
Của em phần in ra thứ tự tăng dần theo điểm của em chỉ in ra được những điểm không trùng nhau thôi ạ m.n cho em hỏi có cách nào khác không a cho em ý tưởng hoặc code luôn cũng được ạ;
đây là bài của em:

void help(t l,t &q,t r) 
{
	if(l!='')
	{	
		help(l->L,q,r);
		 if(l->diem<q->diem&&l->diem>r->diem) q=l; 
		help(l->R,q,r);
	}

}
void help1(t l,t &q)  // tim nguoi co diem lon nhat trong cay
{
	if(l!='')
	{	
		help1(l->L,q);
		if(l->diem>q->diem) q=l;    
		help1(l->R,q);
	}
}
void increase_list(t l,int n)   // n l so nut trong cay
{
t r;
for(int i=0;i<n;i++)   
{
t q=l;
help1(l,q);
help(l,q,r);
r=q;
printf("
%c",q->ms);
printf("
%f",q->diem);
}
}

Gió viết 23:18 ngày 30/09/2018

Thay vì mỗi node là cặp (kí tự, số) mà thay bằng (xâu, số). Như thế, nếu có 1 người trùng điểm đã có trên cây, chỉ cần tìm ra node và thêm vào xâu là dc.

Nguyen Van Huy viết 23:18 ngày 30/09/2018

đề bài của em là vậy không thay đổi được. nhưng em cũng rất thích ý tưởng của bác

Gió viết 23:20 ngày 30/09/2018

Thế thì nếu có thêm 1 node cùng giá trị với node đã thêm, bạn phải đặt quy tắc thêm vào bên trái hoặc bên phải cho nó.

Nguyen Van Huy viết 23:16 ngày 30/09/2018

em xin tiếp nhận ý kiến…

Bài liên quan
0