30/09/2018, 19:10
Thêm dữ liệu vào cây tìm kiếm nhị phân
Em có code thêm dữ liệu vào cây nhị phân sinh viên như ở dưới, nhưng nó lại không thực hiện hàm insertTree trong main()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// #include <string>
typedef struct infomation
{
char username[30];
char password[30];
float diem;
} info;
typedef struct Node
{
info sv;
struct Node *left;
struct Node *right;
} node ;
node *tree = NULL;
void insertTree(char name[30], char pass[30], float point, node *T) {
if (T == NULL) {
T = (node*)malloc(sizeof(node));
T->sv.diem = point;
strcpy(T->sv.username, name);
strcpy(T->sv.password, pass);
T->left = T->right = NULL;
}
else
if (strcmp(T->sv.username, name) > 0) insertTree(name, pass, point, T->left);
else
if (strcmp(T->sv.username, name) < 0) insertTree(name, pass, point, T->right);
else
if (strcmp(T->sv.username, name) == 0)
{
printf("Tai khoan nay da ton tai. Vui long nhap tai khoan khac.
");
return;
}
}
void Inds(node *T) {
if (T == NULL) return;
else
{
Inds(T->left);
printf("%20s - %20s - %8f
", T->sv.username, T->sv.password, T->sv.diem);
Inds(T->right);
}
printf("
");
}
int main(int argc, char const *argv[])
{
char name[30] = "hoanghedpsi";
char pass[30] = "96pbc";
float point = 9;
insertTree(name, pass, point, tree);
Inds(tree);
return 0;
}
Giải thích giúp em với ạ.
Bài liên quan
Thử sửa lại như trên xem thử.
Không được ạ. Nó báo lỗi
Mình copy code của bạn rồi sửa lại như trên thì cpp.sh không báo lỗi mà chạy bình thường.
http://cpp.sh/5jsyh
Em biên dịch trên linux, bằng gcc chứ không phải g++ ạ, hình như trong C không cho phép truyền kiểu này
Sửa lại 1 chút hàm
insertTree
Khi thêm 1 node vào thì sửa lại lệnh