Xin hướng dẫn sửa lỗi code bên dưới (dùng xcode)


/*========== Khai báo danh sách liên kết lưu trữ các số nguyên ==============*/
typedef int ElementType;
typedef struct Node Node;
typedef struct Node
{
    ElementType Element;
    Node* Next;
}
Node;
typedef Node* Position;
typedef Position List;
/*========== Kết thúc khai báo ==================*/

// Tạo danh sách rỗng
void MakeNull_List (List *Header)
{
    (*Header) = (Node*)malloc(sizeof(Node));
    (*Header)->Next = NULL;
}
// Kiểm tra danh sách rỗng, hàm trả về giá trị 1 nếu danh sách rỗng. ngược lại trả về giá trị 0
int Empty_List (List L)
{
    return (L->Next == NULL);
}
// Hàm trả về nội dung phần tử tại vị trí P trong danh sách
ElementType Retrieve (Position P, List L)
{
    if (P->Next != NULL)
        return P->Next->Element;
}
// Hàm trả về vị trí đầu ds
Position First(List L)
{
    return L;
}
// Hàm trả về vị trí cuối ds
Position EndList(List L)
{
    Position P;
    P = First(L);
    while (P->Next != NULL)
    {
        P = P->Next;
    }
    return P;
}
// Thêm phần tử có nội dung X vào vị trí P trong danh sách L
void Insert_List (ElementType X, Position P, List *L)
{
    Position T;
    T = (Node*)malloc(sizeof(Node));
    T->Element = X;
    T->Next = P->Next;
    P->Next = T;
}
// Xoá phần tử tại vị trí P trong danh sách
void Delete_List (Position P, List *L)
{
    Position T;
    if (P->Next !=NULL)
    {
        T->Next = P->Next;
        P->Next = P->Next->Next;
        Free(T);
    }
    else printf("\nLoi ! Danh Sach rong khong the xoa");
}
// In danh sách L ra màn hình
void Print_List (List L)
{
    Position P;
    P = First(L);
    printf("\n Bat dau in danh sach");
    while( P != EndList(L))
    {
        printf("\n%d",Retrieve(P, L));
        P = P->Next;
    }
    printf("\n Ket thuc in danh sach");
}
/* Hàm tìm vị trí phần tử đầu tiên có nội dung X trong danh sách L
 Nếu không tìm thấy, hàm trả về vị trí EndList */
Position Lacate(ElementType X, List L)
{
    Position P;
    int found = 0;
    while ((P->Next != NULL) && (found ==0))
    {
        if (P->Next->Element == X)
            found = 1;
        else
            P = P->Next;
    }
    return P;
}
// Nhập danh sách từ bàn phím
void Read_List (List *L)
{
    int i,N;
    ElementType X;
    Position P;
    P = First(*L);
    printf("\nNhap vao so phan tu trong danh sach: ");
    scanf("%d",&N);
    for (i = 0; i < N; i++)
    {
        printf("\nPhan tu thu %d: ",i+1);
        scanf("%d",&X);
        Insert_List(X, EndList(*L), L);
    }
}

Sửa gì thế bạn ? Sửa chỗ nào ? Sửa lỗi code hay là sửa lại cách viết code tối ưu hơn ?
Bạn trình bày cụ thể ra thì mọi người mới biết mà trả lời bạn ơi :))

3 Likes

xin hướng dẫn sửa lỗi code ạ, e không biết lỗi ở đâu

Khi lỗi xảy ra thì phải có “hiện tượng” gì đó thì bạn mới biết là có lỗi chứ!

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?