Khoa Công Nghệ Thông Tin -Khóa XIII-Lớp TH0702
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Khoa Công Nghệ Thông Tin -Khóa XIII-Lớp TH0702

Hân Hạnh Chào Đón Tất Cả Các Bạn
 
Trang ChínhPortalGalleryLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 danh sach lien ket kep

Go down 
2 posters
Tác giảThông điệp
guanweifu
Super Mod - Quản Trị Viên
Super Mod - Quản Trị Viên
guanweifu


Tổng số bài gửi : 24
Registration date : 13/11/2008

danh sach lien ket kep Empty
Bài gửiTiêu đề: danh sach lien ket kep   danh sach lien ket kep I_icon_minitimeFri Dec 26, 2008 6:23 pm

#include "iostream.h"
#include "string.h"
template
struct NODE
{
TYPE data;
NODE *next,*prev;
};
template
class List
{
private:
NODE *head;
NODE *pos;
NODE *rear;
int count;
void StartHead();
int Finish();
void StartRear();
void SkipNext();
void SkipPrev();
void Insert(TYPE DataIn,NODE *p);
void Remove(NODE *p);
public:
List();
~List();
int Count();
void GetData(TYPE &DataOut);
void InsertHead(TYPE DataIn);
void InsertRear(TYPE DataIn);
void RemoveAll();
void Input(void (*in)(TYPE &));
void Print(void (*out)(TYPE));
void Add2List(List &ListOne,List &ListTwo);
};
template
List::List()
{
head=rear=pos=NULL;
count=0;
}
template
List::~List()
{}
//------------- bat dau ---------------------------
template
void List::StartHead()
{
pos=head;
}
template
void List::StartRear()
{
pos=rear;
}
//---------------ket thuc ? -------------------
template
int List::Finish()
{
return pos==NULL;
}
//----------------nhay -----------------------
template
void List::SkipNext()
{
pos=pos->next;
}
template
void List::SkipPrev()
{
pos=pos->prev;
}
//---------------lay du lieu ------------------
template
void List::GetData(TYPE &DataOut)
{
memcpy(&DataOut,&pos->data,sizeof(TYPE));
}
//---------------chen -------------------------
template
void List::Insert(TYPE DataIn,NODE *p)
{
NODE *q;
NODE *pnew=new NODE;
memcpy(&pnew->data,&DataIn,sizeof(TYPE));
if(p==NULL)
q=head;
else
q=p->next;
pnew->next=q;
if(p==NULL)
head=pnew;
else
p->next=pnew;
pnew->prev=p;
if(q==NULL)
rear=pnew;
else
q->prev=pnew;
count++;
}
//-----------------chen vao dau ----------------
template
void List::InsertHead(TYPE DataIn)
{
Insert(DataIn,NULL);
}
//----------------chen vao duoi-----------------
template
void List::InsertRear(TYPE DataIn)
{
Insert(DataIn,rear);
}
//----------------xoa -----------------------
template
void List::Remove(NODE *p)
{
NODE *ptmp,*q;
if(p==NULL)
ptmp=head;
else
ptmp=p->next;
q=ptmp->next;
if(p==NULL)
head=q;
else
p->next=q;
if(q==NULL)
rear=p;
else
q->prev=p;
delete ptmp;
count--;
}
//----------------xoa ds----------------------
template
void List::RemoveAll()
{
while(head!=NULL)
{
Remove(NULL);
}
}
//----------------nhap ----------------------
template
void List::Input(void (*in)(TYPE &))
{
int n;
TYPE x;
cout << "Nhap vao so phan tu :";
cin >> n;
for (int i=0;i {
cout <<"nhap ptu thu "< in(x);
InsertRear(x);
}
}
//----------------in ----------------------
template
void List::Print(void (*out)(TYPE))
{
TYPE x;
StartHead();
while(!Finish())
{
GetData(x);
out(x);
SkipNext();
}
cout << endl ;
}
//----------------cong so nguyen lon---------------
template
void List::Add2List(List &ListOne,List &ListTwo)
{
TYPE Carry,x;
Carry=0;
ListOne.StartRear();
ListTwo.StartRear();
while(!ListOne.Finish() && !ListTwo.Finish())
{
Carry=Carry + ListOne.pos->data + ListTwo.pos->data;
x=Carry % 10 ;
InsertHead(x);
Carry=Carry/10 ;
ListOne.SkipPrev();
ListTwo.SkipPrev();
}
while(!ListOne.Finish())
{
Carry=Carry + ListOne.pos->data;
x=Carry % 10 ;
InsertHead(x);
Carry=Carry/10 ;
ListOne.SkipPrev();
}
while(!ListTwo.Finish())
{
Carry=Carry + ListTwo.pos->data;
x=Carry % 10 ;
InsertHead(x);
Carry=Carry/10;
ListTwo.SkipPrev();
}
if(Carry > 0)
InsertHead(Carry);
}
void NhapSoNguyen(int &n)
{
cin >> n ;
}
void XuatSoNguyen(int n)
{
cout << n ;
}
void main()
{
List L;
List LOne;
List LTwo;
LOne.Input(NhapSoNguyen);
LOne.Print(XuatSoNguyen);
LTwo.Input(NhapSoNguyen);
LTwo.Print(XuatSoNguyen);
L.Add2List(LOne,LTwo);
cout <<"-------------------" << endl ;
L.Print(XuatSoNguyen);

}
Về Đầu Trang Go down
=Xme=
Super Mod - Quản Trị Viên
Super Mod - Quản Trị Viên
=Xme=


Tổng số bài gửi : 156
Age : 36
Đến từ : no*i tinh` iu bat' dau` ~^ ^~
Registration date : 13/11/2008

danh sach lien ket kep Empty
Bài gửiTiêu đề: Re: danh sach lien ket kep   danh sach lien ket kep I_icon_minitimeFri Dec 26, 2008 8:37 pm

Cho cái link file đi , copy kiểu này về đọc mù mắt mất
Về Đầu Trang Go down
 
danh sach lien ket kep
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Bài tập CTDL
» DataStructure - Danh sách liên kết - Code download
» Danh Sach Cac Mod va Administrator
» DANH SÁCH CÁC MOD VÀ ADMINISTRATOR
» Lời chào đầu tiên!

Permissions in this forum:Bạn không có quyền trả lời bài viết
Khoa Công Nghệ Thông Tin -Khóa XIII-Lớp TH0702 :: Khu Học Tập :: Năm 2-
Chuyển đến