-
-
Save htoann/c242be817e6e8b63a591c670f5b716a6 to your computer and use it in GitHub Desktop.
DSLK
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<iostream> | |
using namespace std; | |
class Node | |
{ | |
public: | |
int data; //khoi tao data | |
class Node *pNext; //khoi tao con tro | |
}; | |
typedef class Node NODE; // khoi tao ten cua lop | |
//Khai báo cau trúc cua danh sách lkdon | |
class List | |
{ | |
public: | |
NODE *pHead; //khoi tao dau tau | |
NODE *pTail; //khoi tao cuoi tau | |
}; | |
typedef class List LIST; // khoi tao ten cua lop | |
void KhoiTao(LIST &l) //khoi tao constructor | |
{ | |
//cho2 node tro den null- vi danh sách lien kêt don | |
//mac dinh la null | |
l.pHead = NULL; | |
l.pTail = NULL; | |
} | |
NODE *KhoiTaoNODE(int x) //ham khoi tao du lieu cua toa tàu | |
{ | |
NODE *p = new NODE; //cap phat vung nho cho node p | |
if(p==NULL) | |
{ | |
cout<<"\nKhong du bo nho de cap phat !"; | |
return NULL; | |
} | |
p->data = x; // truyen gia tri x vao cho data | |
p->pNext = NULL; // dau tienkhai bao node thi node do chua co lk den node nao het | |
return p; // tra ve node p vua khoi tao | |
} | |
//Ham them node vao dau danh sach lien ket | |
void ThemVaoDau(LIST &l,NODE *p) | |
{ | |
//danh sach dang rong | |
if(l.pHead == NULL) | |
{ | |
l.pHead = l.pTail = p; //node dau cung la node cuoi | |
} | |
else | |
{ | |
p->pNext = l.pHead; // cho con tro cua node can them la node p lien ket den node dau - phead | |
l.pHead = p; // cap nhat lai phead chinh la node p | |
} | |
} | |
//ham thêm node p vao cuoi danh sach lien ket don | |
void ThemVaoCuoi(LIST &l,NODE *p) | |
{ | |
if(l.pHead==NULL) | |
{ | |
l.pHead = l.pTail = p; //node dau cung la node cuoi | |
} | |
else | |
{ | |
l.pTail->pNext = p; | |
l.pTail = p; | |
} | |
} | |
//ham xuatdanh sach lk don | |
void XuatDanhSach(LIST l) | |
{ | |
for(NODE *i = l.pHead; i !=NULL; i=i->pNext) | |
{ | |
cout<<i->data<<" "; | |
} | |
} | |
int main() | |
{ | |
LIST l; | |
KhoiTao(l); | |
int n; | |
cout<<"Nhap so luong node can them: "; | |
cin>>n; | |
for(int i=1;i<=n;i++) | |
{ | |
int x; | |
cout<<"\nNhap gia tri so nguyen: "; | |
cin>>x; | |
NODE*p = KhoiTaoNODE(x); // khoi tao node so nguyen | |
ThemVaoCuoi(l,p); //them node p vao dau danh sach lk don | |
} | |
cout<<"\n\n\tDANH SACH LIEN KET DON\n"; | |
XuatDanhSach(l); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment