Breaking News
Loading...
Monday, December 5, 2011

Hàm Nhập Xuất Danh Sách Liên Kết Đơn

12/05/2011 02:55:00 PM
Đây là bài mẫu nhập xuất danh sách liên kết đơn( số nguyên), theo dạng 3 file. Nếu bạn muốn viết theo 1 file thì xem Tại đây
* File khaibao.h
#include"iostream"
using namespace std;
typedef struct tnode
{
int key;
struct tnode*pnext;
}node;
typedef struct tlist
{
node *head;node *tail;
}list;
node *getnode(int x);
void addhead(list &l,node*p);
void addtail(list &l,node*p);
void nhapds(list &l);
void xuatds(list l);
void huyds(list &l);
*file caidat.cpp
#include"khaibao.h"
  node *getnode(int x)
         {
node*t;
t=new node;
if(t==NULL)
{
cout<<"khong cap phat duoc";
exit(0);
}
t->key=x;
t->pnext=NULL;
return t;
}
void addhead(list &l,node*p)
{
if(l.head==NULL)
l.head=l.tail=p;
else
{
p->pnext=l.head;
l.head=p;
}
}
void addtail(list &l,node*p)
{
if(l.head==NULL)
l.head=l.tail=p;
else
{
l.tail->pnext=p;
l.tail=p;
}
}
void nhapds(list &l)
{
node *p;
int x,n;
l.head=l.tail=NULL;//khoi dong ds rong
cout<<"nhap vao so luong node: ";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"nhap gia tri x: ";
cin>>x;
p=getnode(x);
addtail(l,p); //addhead(l,p);
}

}
void xuatds(list l)
{
node*i;
for(i=l.head;i!=NULL;i=i->pnext)
cout<<i->key<<"->";
cout<<"NULL";
}
void huyds(list &l)
{
node *p=l.head;
while(p!=NULL)
{
l.head=p->pnext;
delete p;
p=l.head;
}
}

*File main.cpp
#include"khaibao.h"
void main()
{
   list l;
  nhapds(l);
  xuatds(l);
  huyds(l);
}


* Bổ sung
Hàm xóa một node sau node q:
void XoáNodeSauNodeQ(LIST &l, NODE *q)
{

if(q==NULL || q==l.Tail)

return;

NODE *p=q->pNext;

q->pNext=p->pNext;

if(q->pNext==l.Tail)

l.Tail = q;

delete p;

}


Hàm xóa node cu
i :
void XoáNodeTail(LIST &l)

{

NODE *p ;

if(l.Head==l.Tail)

{

delete l.Head;

l.Head = l.Tail = NULL;

return;

}


for(p=l.Head;p->pNext!=l.Tail;p=p->pNext);
p->pNext=NULL;
delete l.Tail;
l.Tail = p;
}

2 comments:

  1. Bạn ơi,mình cần đọc một file ,sau đó đưa vào danh sách liên kết,rồi mới sắp xếp!Bạn có thể cho mình ý tưởng không?

    ReplyDelete
    Replies
    1. Trước tiên cho mình hỏi là bạn có biết hàm đọc file chưa. nếu bạn đã biết cách đọc file thì rất dễ. bạn có thề dùng 2 cách. 1/ là bạn đọc file đó rồi ghi vào mảng 1 chiều. sau đó duyệt dòng for nhập từ phần tử của mảng vào danh sách liên kết. 2/ là bạn đọc lần lượt từng phần tử trong file,đọc dc phần tử nào thì nhập phần tử đó vào danh sách liên kết

      Delete

 
Toggle Footer