PDA

View Full Version : ve danh sach lien ket



160589
16-04-2008, 22:36
mình chỉ vừa mới học về danh sách liên kết nhưng hỏng bít nhập ,xuất một danh sách với key là sv
mình phải làm sao dây,xin cac bạn giúp đỡ
có thể cho mình đoạn code về nhập xuất cang tốt ,xin cam ơn !!!!!!....

firefly0901
18-04-2008, 22:44
Theo như lời bạn nói thì bạn biết nhập và xuất một dslk rồi đúng không. Vậy thì trong bài này bạn chỉ cần tạo một struct sinhvien, gồm các thuộc tính theo yêu cầu của bài toán như họ tên, mã số,...
Một node trong dslk gồm 2 trường : info và next. Thông thường trường info là số nguyên, hoặc string, ... còn trong bài này nó sẽ là kiểu struct. Các thuật toán nhập xuất vẫn áp dụng bình thường (nếu bạn biết đã biết làm việc với struct còn nếu không bạn nên tìm lại SGK để đọc lại phần struct này
).

ntrongdangkhoa
13-06-2008, 12:57
Đơn giản đây nè

//Thuoc tinh nut
struct NODE
{
int info;
struct NODE *pNext;
};

//Thuoc tinh danh sach
struct LIST
{
NODE *pHead;
NODE *pTail;
};

//Khoi tao danh sach *---->
//Initialize
void Init (LIST &l)
{
l.pHead = NULL;
l.pTail = NULL;
}

//Tao 1 nut
NODE *getNODE (int x)
{
NODE *p;
p = new NODE;

if (p == NULL)
{
return NULL;
}

p ->info = x;
p ->pNext = NULL;

return p;


}

//Them 1 nut vao dau danh sach
//new_element (yeu to, thanh phan____moi)
void addHead (LIST &l, NODE *new_ele)
{
if (l.pHead == NULL)
{
l.pHead = new_ele;
l.pTail = l.pHead;
}
else
{
new_ele ->pNext = l.pHead;
l.pHead = new_ele;
}
}

//Them 1 nut vao cuoi danh sach
//new_element (yeu to, thanh phan____moi)
void addTail (LIST &l, NODE *new_ele)
{
if (l.pHead == NULL)
{
l.pHead = new_ele;
l.pTail = l.pHead;
}
else
{
l.pTail ->pNext = new_ele;
l.pTail = new_ele;
}
}


void Input (LIST &l, int &n)
{
printf("Nhap so luong node: ");
scanf("%d", &n);

printf("\n");

Init (l);
for (int i = 1; i <= n; i++)
{
int x;
printf("Nhap 1 so nguyen: ");
scanf("%d", &x);
NODE *p = getNODE (x);
addTail (l, p);
}
}

void Output (LIST l)
{
printf("Xuat: ");

for (NODE *p = l.pHead; p != NULL; p = p ->pNext)
{
printf("%4d", p ->info);
}
printf("\n");
}

watch_midnight
26-07-2008, 14:19
để học tốt phần này bạn nên học kỷ phần con trỏ, chỉ cần hiểu cách hoạt động của con trỏ là bạn hiểu luon DSLK đôi, vòng. và phần cây nhị phân tìm kiếm nữa.