30/09/2018, 21:32
[C/C++] Danh Sách Liên Kết
#include "stdio.h"
//1. Khai Bao Cau Truc Du Lieu
struct Hocsinh
{
int Ma;
char ten[30];
char diachi[50];
float DTB;
};
typedef struct Hocsinh HOCSINH;
struct Node
{
HOCSINH Data;
Node *pNext;
};
typedef struct Node NODE;
struct List
{
NODE *pHead;
NODE *pTail;
};
typedef struct List LIST;
//2. Khoi Tao Danh Sach Lien Ket
void Init(LIST &L)
{
L.pHead = L.pTail = NULL;
}
//3. Tao Node
NODE *GetNode(HOCSINH hs)
{
NODE *p;
p = new NODE;
if (p == NULL)
return NULL;
p->Data = hs;
p->pNext = NULL;
return p;
}
//4. Them 1 Node Vao Dau Danh Sach
void AddHead(LIST &L, NODE *p)
{
if (L.pHead == NULL)
{
L.pHead = p;
L.pHead = L.pTail;
}
else
{
p->pNext = L.pHead;
L.pHead = p;
}
}
void Nhap(HOCSINH hs)
{
printf("Ma So HS: ");
scanf("%d", &hs.Ma);
printf("Nhap Ten HS: ");
fflush(stdin);
gets(hs.ten);
printf("Nhap Dia Chi HS: ");
gets(hs.diachi);
printf("Nhap DTB HS: ");
scanf("%f", &hs.DTB);
}
void Input(LIST &L, int &n)
{
Init(L);
HOCSINH hs[10];
printf("Nhap So Hoc Sinh Muon Nhap: ");
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
printf(" = = Hoc Sinh 1 = =
");
Nhap(hs[i]);
NODE *p = GetNode(hs[i]);
AddHead(L, p);
}
}
void Xuat(HOCSINH hs)
{
printf("Ma So HS: %d", hs.Ma);
fflush(stdin);
printf("Ho Ten HS: ");
puts(hs.ten);
printf("Dia Chi HS: ");
puts(hs.diachi);
printf("Diem Trung Binh HS: %f", hs.DTB);
}
void Output(LIST L)
{
for (NODE *p = L.pHead; L.pHead != NULL; p = p->pNext)
{
Xuat(p->Data);
}
}
void main()
{
int n;
LIST L;
Input(L, n);
Output(L);
}
Mọi người xem dùm em với em còn lỗi nào vậy ạ, em đang làm là nhập mảng struct các học sinh vào danh sách liên kết
Bài liên quan
void Output(LIST L)
{
for (NODE p = L.pHead; p != NULL; p = p->pNext)
{
Xuat(p->Data);
}
}
p!=NULL nhé bạn
void AddHead(LIST &L, NODE *p)
{
if (L.pHead == NULL)
{
L.pHead = p;
L.pTail=p;
}
else
{
p->pNext = L.pHead;
L.pHead = p;
}
}
Cảm ơn bạn nhiều lắm nha
Mình đã tìm thầy lỗi sai, cảm ơn bạn đã tìm giúp mình nha
ok khong co gi nhe –