Skip to content

Instantly share code, notes, and snippets.

@htoann
Created June 14, 2022 04:15
Show Gist options
  • Save htoann/c242be817e6e8b63a591c670f5b716a6 to your computer and use it in GitHub Desktop.
Save htoann/c242be817e6e8b63a591c670f5b716a6 to your computer and use it in GitHub Desktop.
DSLK
#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