Mình có đề bài na ná nhau như này:
-Tìm sinh viên theo lớp
-Tìm sinh viên theo tên
-Tìm sinh viên theo khóa
điểm chung là 3 cái trên đều là chuỗi ký tự,mình đang viết 3 hàm tìm kiếm dạng như này :
void TimSV_Ten(DSSV root, char hoTen[30])
{
stack <NodePointer> ST;
int dem = 0;
NodePointer t;
ST.push(root);
while (!ST.empty())
{
t = ST.top();
ST.pop();
//Xử lý
//--------------------------------------------------------------------------
if (_stricmp(t->Key.tenSV, hoTen) == 0)
{
dem++;
Xuat1NV(t->Key);
}
//--------------------------------------------------------------------------
if (t->RightChild != NULL)
ST.push(t->RightChild);
if (t->LeftChild != NULL)
ST.push(t->LeftChild);
}
if (dem == 0)
cout << "\nTrong danh sach khong co sinh vien nao co ten la : " <<hoTen;
}
Các hàm tìm kiếm khác mình đều dùng thuật toán trên,mình muốn hỏi có cách nào dùng 1 hàm tìm kiếm duy nhất ,truyền vào các tham số khác nhau để tìm không,mình không muốn tạo ra 3 hàm,bài vừa xấu mà vừa không hay,với cả chỉ khác nhau phần " Xử lý " trong code thôi.
Như thường lệ,mình xin thuật toán,có code mẫu càng hay hoặc chỉ đơn giản là keyword
Mình xin trân trọng cảm ơn