SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleNỘI DUNG
DANH SÁCH LIÊN KẾT ĐƠN (LIST)
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleTổ Chức Của DSLK Đơn
 Mỗi phần tử liên kết với phần tử đứng liền sau trong
danh sách
 Mỗi phần tử trong danh sách liên kết đơn là một cấu
trúc có hai thành phần
 Thành phần dữ liệu: Lưu trữ thông tin về bản
thân phần tử
 Thành phần liên kết: Lưu địa chỉ phần tử đứng
sau trong danh sách hoặc bằng NULL nếu là phần
tử cuối danh sách.
x0
x1
x2
x3
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCTDL của DSLK đơn
 Cấu trúc dữ liệu của 1 nút trong List đơn
typedef struct tagNode
{ Data Info; // Lưu thông tin bản thân
struct tagNode *pNext; //Lưu địa chỉ của Node đứng sau
}Node;
 Cấu trúc dữ liệu của DSLK đơn
typedef struct tagList
{ Node *pHead;//Lưu địa chỉ Node đầu tiên trong List
Node *pTail; //Lưu địa chỉ của Node cuối cùng trong List
}LIST; // kiểu danh sách liên kết đơn
Info
pNext
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleVí dụ tổ chức DSLK đơn trong bộ nhớ
4f4
3f
NULL65f7
4f 5f
pHead
pTail
Trong ví dụ trên thành phần dữ liệu là 1 số nguyên
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCác thao tác cơ bản trên DSLK đơn
 Tạo 1 danh sách liên kết đơn rỗng
 Tạo 1 nút có trường Infor bằng x
 Tìm một phần tử có Info bằng x
 Thêm một phần tử có khóa x vào danh sách
 Hủy một phần tử trong danh sách
 Duyệt danh sách
 Sắp xếp danh sách liên kết đơn
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleKhởi tạo danh sách liên kết
 Địa chỉ của nút đầu tiên, địa chỉ của nút cuối
cùng đều không có
void CreateList(List &l)
{
l.pHead=NULL;
l.pTail=NULL;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleTạo 1 phần tử mới
 Hàm trả về địa chỉ phần tử mới tạo
Node* CreateNode(Data x)
{ Node *p;
p = new Node;//Cấp phát vùng nhớ cho phần tử
if ( p==NULL) exit(1);
p ->Info = x; //gán dữa liệu cho nút
p->pNext = NULL;
return p;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThêm 1 phần tử vào DSLK
 Nguyên tắc thêm: Khi thêm 1 phần tử vào List thì
có làm cho pHead, pTail thay đổi?
 Các vị trí cần thêm 1 phần tử vào List:
 Thêm vào đầu List đơn
 Thêm vào cuối List
 Thêm vào sau 1 phần tử q trong list
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán thêm 1 phần tử vào đầu DSLK
 Thêm nút p vào đầu danh sách liên kết đơn
Bắt đầu:
Nếu List rỗng thì
+ pHead = p;
+ pTail = pHead;
Ngược lại
+ p->pNext = pHead;
+ pHead = p
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleHàm thêm 1 phần tử vào đầu List
void AddHead(LIST &l, Node* p)
{
if (l.pHead==NULL)
{
l.pHead = p;
l.pTail = l.pHead;
}
else
{
p->pNext = l.pHead;
l.pHead = p;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán thêm vào đầu
3 3f 4 4f 8 …
pHead 2f 3f 4f
10
9f
P
P->pNext=pHead
2fN
pHead=P
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán thêm vào cuối DSLK
 Ta cần thêm nút p vào cuối list đơn
Bắt đầu:
Nếu List rỗng thì
+ pHead = p;
+ pTail = pHead;
Ngược lại
+ pTail->pNext=p;
+ pTail=p
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleHàm thêm 1 phần tử vào cuối DSLKD
void AddTail(LIST &l, Node *p)
{
if (l.pHead==NULL)
{
l.pHead = p;
l.pTail = l.pHead;
}
else
{
l.pTail->Next = p;
l.pTail = p;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán thêm vào cuối
54 4f 8 5f
pTail
3f 4f 5f
6 N
9f
P
N9f
pTail->pNext
pTail=P
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán thêm phần tử q vào sau phần tử q
 Ta cần thêm nút p vào sau nút q trong list đơn
Bắt đầu:
Nếu (q!=NULL) thì
B1: p->pNext = q->pNext
B2:
+ q->pNext = p
+ nếu q = pTail thì
pTail=p
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán
void InsertAfterQ(List &l, Node *p, Node *q)
{
if(q!=NULL)
{
p->pNext=Q->Next;
q->pNext=p;
if(l.pTail==q)
l.Tail=q;
}
else
AddHead(l,q);// thêm q vào đầu list
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán
5 ..4 4f 8
3f 4f 5f
7
P
9f
q
5f9f
5fN
P->pNext=q->pNext
q->pNext=P
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleHủy phần tử trong DSLK đơn
 Nguyên tắc: Phải cô lập phần tử cần hủy trước hủy.
 Các vị trị cần hủy
 Hủy phần tử đứng đầu List
 Hủy phần tử có khoá bằng x
 Huỷ phần tử đứng sau q trong danh sách liên kết
đơn
 Ở phần trên, các phần tử trong DSLK đơn được cấp
phát vùng nhớ động bằng hàm new, thì sẽ được giải
phóng vùng nhớ bằng hàm delete.
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán hủy phần tử trong DSLK
 Bắt đầu:
 Nếu (pHead!=NULL) thì
 B1: p=pHead
 B2:
+ pHead = pHead->pNext
+ delete (p)
 B3:
Nếu pHead==NULL thì pTail=NULL
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán
 Hủy được hàm trả về 1, ngược lại hàm trả về 0
int RemoveHead(List &l, int &x)
{ Node *p;
if(l.pHead!=NULL)
{ p=l.pHead;
x=p->Info; //lưu Data của nút cần hủy
l.pHead=l.pHead->pNext;
delete p;
if(l.pHead==NULL)
l.pTail=NULL;
return 1;
}
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh hoạ thuật toán
2f7 3f6 4f3 …8
P
pHead
1f
2f 3f 4f
P=pHead
pHead=pHead->pNext
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleHủy phần tử sau phần tử q trong List
 Bắt đầu
Nếu (q!=NULL) thì //q tồn tại trong List
 B1: p=q->pNext;// p là phần tử cần hủy
 B2: Nếu (p!=NULL) thì // q không phải là phần tử cuối
+ q->pNext=p->pNext;// tách p ra khỏi xâu
+ nếu (p== pTail) // nút cần hủy là nút cuối
pTail=q;
+ delete p;// hủy p
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán
int RemoveAfterQ(List &l,Node *q, int &x)
{ Node *p;
if(q!=NULL)
{ p=q->pNext; //p là nút cần xoá
if(p!=NULL) // q không phài là nút cuối
{ if(p==l.pTail) //nút cần xoá là nút cuối cùng
l.pTail=q;// cập nhật lạ pTail
q->pNext=p->pNext; x=p->Info;
delete p;
}
return 1;
}
else
return 0;}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán
2f7 6 4f3 …8
1f
2f 3f 4f
q
3f4f
p
p-=q->pNext
q->pNext=p->pNext
pHead
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán hủy phần tử có khoá x
Bước 1:
Tìm phần tử p có khoá bằng x, và q đứng trước p
Bước 2:
Nếu (p!=NULL) thì //tìm thấy phần tử có khoá bằng x
Hủy p ra khỏi List bằng cách hủy phần tử
đứng sau q
Ngược lại
Báo không tìm thấy phần tử có khoá
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán
int RemoveX(List &l, int x)
{ Node *p,*q = NULL; p=l.Head;
while((p!=NULL)&&(p->Info!=x)) //tìm
{ q=p;
p=p->Next;
}
if(p==NULL) //không tìm thấy phần tử có khoá bằng x
return 0;
if(q!=NULL)//tìm thấy phần tử có khoá bằng x
DeleteAfterQ(l,q,x);
else //phần tử cần xoá nằm đầu List
RemoveHead(l,x);
return 1;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleTìm 1 phần tử trong DSLK đơn
 Tìm tuần tự (hàm trả về), các bước của thuật toán tìm
nút có Info bằng x trong list đơn
Bước 1: p=pHead;// địa chỉ của phần tử đầu trong list đơn
Bước 2:
Trong khi p!=NULL và p->Info!=x
p=p->pNext;// xét phần tử kế
Bước 3:
+ Nếu p!=NULL thì p lưu địa chỉ của nút có
Info = x
+ Ngược lại : Không có phần tử cần tìm
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleHàm tìm 1 phần tử trong DSLK đơn
 Hàm tìm phần tử có Info = x, hàm trả về địa chỉ
của nút có Info = x, ngược lại hàm trả về NULL
Node *Search(LIST l, Data x)
{
Node *p;
p = l.pHead;
while((p!= NULL)&&(p->Info != x))
p = p->pNext;
return p;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán tìm phần tử trong DSLK
5634 3 4 8
X = 8
pHead 1f 2f 3f 4f 5f
P
Tìm thấy, hàm trả
về địa chỉ của
nút tìm thấy là 4f
8
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleDuyệt danh sách
Duyệt danh sách là thao tác thường được thực
hiện khi có nhu cầu cần xử lý các phần tử trong
danh sách như:
 Đếm các phần tử trong danh sách
 Tìm tất cả các phần tử trong danh sách thảo điều
kiện
 Hủy toàn bộ danh sách
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán duyệt danh sách
• Bước 1:
p = pHead;// p lưu địa chỉ của phần tử đầu trong List
• Bước 2:
Trong khi (danh sách chưa hết) thực hiện
+ xử lý phần tử p
+ p=p->pNext;// qua phần tử kế
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt in các phần tử trong List
void PrintList(List l)
{
Node *p;
p=l.pHead;
while(p!=NULL)
{ printf(“%d ”, p->Info);
p=p->pNext;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleHủy danh sách liên kết đơn
 Bước 1:
Trong khi (danh sách chưa hết) thực hiện
• B11:
p = pHead;
pHead = pHead->pNext;// cập nhật pHead
• B12:
Hủy p
 Bước 2:
pTail = NULL;// bảo toàn tính nhất quán khi xâu rỗng
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán
void RemoveList(List &l)
{
Node *p;
while(l.pHead!=NULL)//còn phần tử trong List
{
p = l.pHead;
l.pHead = p->pNext;
delete p;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán
2f7 6 4f3 5f8
1f
2f 3f 4f
3f
pHead
p
N9
5f
pTail
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleSắp xếp danh sách
 Có hai cách tiếp cận
 Cách 1: Thay đổi thành phần Info
4f4
3f
N65f7
4f 5f
pHead pTail
4f4
3f
N75f6
4f 5f
pHead pTail
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleSắp xếp danh sách
Cách 2: Thay đổi thành phần pNext (thay đổi
trình tự móc nối của các phần tử sao cho tạo
lập nên được thứ tự mong muốn)
3f 4f 5f
6
pHead
pTail
5f4 4fN7
4f4
3f
N65f7
4f 5f
pHead pTail
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleƯu, nhược điểm của 2 cách tiếp cận
 Thay đổi thành phần Info (dữ liệu)
 Ưu: Cài đặt đơn giản, tương tự như sắp xếp mảng
 Nhược:
• Đòi hỏi thêm vùng nhớ khi hoán vị nội dung của 2 phần
tử -> chỉ phù hợp với những xâu có kích thước Info nhỏ
• Khi kích thước Info (dữ liệu) lớn chi phí cho việc hoán vị
thành phần Info lớn
Làm cho thao tác sắp xếp chậm
 Thay đổi thành phần pNext
 Ưu:
• Kích thước của trường này không thay đổi, do đó không
phụ thuộc vào kích thước bản chất dữ liệu lưu tại mỗi
nút.
Thao tác sắp xếp nhanh
 Nhược: Cài đặt phức tạp
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleDùng thuật toán SX SelectionSort để SX List
void SelectionSort(LIST &l)
{
Node *p,*q,*min;
p=l.pHead;
while(p!=l.pTail)
{
min=p;
q=p->Next;
while(q!=NULL)
{
if(q->Info<p->Info)
min=q;
q=q->Next;
}
HV(min->Info,p->Info);
p=p->Next;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCác thuật toán sắp xếp hiệu quả trên List
 Các thuật toán sắp xếp xâu (List) bằng các thay đổi
thành phần pNext (thành phần liên kết) có hiệu quả
cao như:
 Thuật toán sắp xếp Quick Sort
 Thuật toán sắp xếp Merge Sort
 Thuật toán sắp xếp Radix Sort
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán sắp xếp Quick Sort
• Bước 1:
Chọn X là phần tử đầu xâu L làm phần tử cầm canh
Loại X ra khỏi L
• Bước 2:
Tách xâu L ra làm 2 xâu L1(gồm các phần tử nhỏ hơn
hoặc bằng x) và L2 (gồm các phần tử lớn hơn X)
• Bước 3: Nếu (L1 !=NULL) thì QuickSort(L1)
• Bước 4: Nếu (L2!=NULL) thì QuickSort(L2)
• Bước 5: Nối L1, X, L2 lại theo thứ tự ta có xâu L đã
được sắp xếp
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán
6 5 1 8 2
pHead
pTail
4
X = 4
Cho danh sách liên kết gồm các phần tử sau:
2L1 (X) 1
pHead
pTail
5 8
pHead
6L2 (>X)
pTail
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán (tt)
Sắp xếp L1
Sắp xếp L2
 Chọn x=6 cầm canh, và tách L2 thành L21 và L22
X2 = 6
2L21 (X)
pHead
pTail
8
pHead
L22 (>X)
pTail
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán (tt)
 Nối L21, X2, L22 thành L2
6 8
pHead
6L2
pTail
Nối L1, X, L2 thành L
2 4 5 6 8
pHead
pTail
1
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán
void QuickSort(List &l)
{ Node *p,*X;//X lưu địa chỉ của phần tử cầm canh
List l1,l2;
if(l.pHead==l.pTail) return;//đã có thứ tự
CreateList(l1);
CreateList(l2);
X=l.pHead;
l.pHead=X->pNext;
while(l.pHead!=NULL)//tách L = L1 va L2
{ p=l.pHead;
l.pHead=p->pNext;
p->pNext=NULL;
if(p->Info<=X->Info)
AddHead(l1,p);
else
AddHead(l2,p);
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt thuật toán (tt)
QuickSort(l1);//Gọi đệ quy sắp xếp L1
QuickSort(l2);//Gọi đệ quy sắp xếp L2
if(l1.pHead!=NULL)//nối l1, l2 va X vao l
{
l.pHead=l1.pHead;
l1.pTail->pNext=X;//nối X vào
}
else
l.pHead=X;
X->pNext=l2.pHead;
if(l2.pHead!=NULL) //l2 có trên một phần tử
l.pTail=l2.pTail;
else //l2 không có phần tử nào
l.pTail=X;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThuật toán sắp xếp Merge Sort
• Bước 1: Phân phối luân phiên từng đường chạy của
xâu L vào 2 xâu con L1 và L2.
• Bước 2: Nếu L1 != NULL thì Merge Sort (L1).
• Bước 3: Nếu L2 != NULL thì Merge Sort (L2).
• Bước 4: Trộn L1 và L2 đã sắp xếp lại ta có xâu L
đã được sắp xếp.
• Không tốn thêm không gian lưu trữ cho các dãy phụ
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán
6 5 1 8 2
pHead
pTail
4
Cho danh sách liên kết gồm các phần tử sau:
Phân phối các đường chạy của L1 vào L1, L2
6 1 8
pHead
4
pTail
L1
pTail
2
pHead
5L2
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán (tt)
 Sắp xếp L1
 Phân phối các đường chạy L1 vào L11, L12
6
pHead
4
pTail
L11
pTail
8
pHead
1L12
 Trộn L11 và L12 vào L1
4 6 8
pHead
1
pTail
L1
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán(tt)
 Sắp xếp L2
 Phân phối các đường chạy của L2 vào L21, L22
pHead
5
pTail
L21
pTailpHead
2L22
Trộn L21, L22 thành L2
5
pHead
2
pTail
L2
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleMinh họa thuật toán (tt)
 Trộn L1, L2 thành L
2 4 5 6 8
pHead
pTail
1
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt hàm main()
 Yêu cầu: Viết chương trình thành lập 1 xâu đơn,
trong đó thành phần dữ liệu của mỗi nút là 1 số
nguyên dương.
1. Liệt kê tất thành phần dữ liệu của tất cả các nút
trong xâu
2. Tìm 1 phần tử có khoá bằng x trong xâu.
3. Xoá 1 phần tử đầu xâu
4. Xoá 1 phần tử có khoá bằng x trong xâu
5. Sắp xếp xâu tăng dần theo thành phần dữ liệu (Info)
6. Chèn 1 phần tử vào xâu, sao cho sau khi chèn
xâu vẫn tăng dần theo trường dữ liệu
..vv
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt hàm main() (tt)
void main()
{ LIST l1; Node *p; int x;
CreateList(l1);
do{
printf(“nhap x=”); scanf(“%d”,&x);
if(x>0)
{ p = CreateNode(x);
AddHead(l1,x);
}
}while(x>0);
printf(“Danh sách mới thành lập làn”);
PrintList(l1);
printf(“nhập x cần tìm x=”); scanf(“%d”,&x);
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt hàm main() (tt)
p = Search(l1,x);
if(p==NULL) printf(“không tìm thấy”);
else printf(“tìm thấy”);
RemoveHead(l1,x);
printf(“danh sách sau khi xóan”);
PrintList(l1);
printf(“nhập khoá cần xoán”);
scanf(“%d”,&x);
RemoveX(l1,x);
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt hàm main() (tt)
printf(“danh sách sau khi xoá”);
PrintfList(l1);
SelectionSort(l1);
printf(“Danh sách sau khi sắp xếp”);
PrintfList(l1);
RemoveList(l1);
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleVài ứng dụng danh sách liên kết đơn
• Dùng xâu đơn để lưu trữ danh sách các học viên
trong lớp học
• Dùng xâu đơn để quản lý danh sách nhân viên trong
một công ty, trong cơ quan
• Dùng xâu đơn để quản lý danh sách các cuốn sách
trong thư viện
• Dùng xâu đơn để quản lý các băng đĩa trong tiệm cho
thuê đĩa.
• ..vv
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleDùng xâu đơn để quản lý lớp học
Yêu cầu: Thông tin của một sinh viên gồm, mã
số sinh viên, tên sinh viên, điểm trung bình.
1. Hãy khai báo cấu trúc dữ liệu dạng danh sách
liên kết để lưu danh sách sinh viên nói trên.
2. Nhập danh sách các sinh viên, và thêm từng
sinh viên vào đầu danh sách (việc nhập kết
thúc khi tên của một sinh viên bằng rỗng)
3. Tìm một sinh viên có trong lớp học hay không
4. Xoá một sinh viên có mã số bằng x (x nhập từ
bàn phím)
5. Liệt kê thông tin của các sinh viên có điểm
trung bình lớn hơn hay bằng 5.
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleDùng xâu đơn để quản lý lớp học
6. Xếp loại và in ra thông tin của từng sinh viên, biết
rằng cách xếp loại như sau:
ĐTB <=3.6 : Loại yếu
ĐTB>=50 và ĐTB<6.5 : Loại trung bình
ĐTB>=6.5 và ĐTB < 7.0: Loại trung bình khá
ĐTB>=7.0 và ĐTB <8.0: Loại khá
ĐTB>=8.0 và ĐTB < 9.0: Loại giỏi.
ĐTB>=9.0 : Loại xuất sắc
7. Sắp xếp và in ra danh sách sinh viên tăng theo điểm
trung bình.
8. Chèn một sinh viên vào danh sách sinh viên tăng
theo điểm trung bình nói trên, sao cho sau khi chèn
danh sách sinh viên vẫn tăng theo điểm trung bình
..vv
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCấu trúc dữ liệu cho bài toán
• Cấu trúc dữ liệu của một sinh viên
typedef struct
{ char tên[40];
char Maso[40];
float ĐTB;
}SV
• Cấu trúc dữ liệu của 1 nút trong xâu
typedef struct tagNode
{ SV Info;
struct tagNode *pNext;
}Node;
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCác cấu trúc đặc biệt của danh sách đơn
 Stack (ngăn xếp): Là 1 vật chứa các đối tượng làm
việc theo cơ chế LIFO (Last In First Out), tức việc
thêm 1 đối tượng vào Stack hoặc lấy 1 đối tượng ra
khỏi Stack được thực hiện theo cơ chế “vào sau ra
trước”
 Queue (hàng đợi): Là 1 vật chứa các đối tượng làm
việc theo cơ chế FIFO (First In First Out), tức việc
thêm 1 đối tượng vào hàng đợi hay lấy 1 đối tượng ra
khỏi hàng đợi thực hiện theo cơ chế “vào trước ra
trước”.
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleỨng dụng Stack và Queue
Stack:
 Trình biên dịch
 Khử đệ qui đuôi
 Lưu vết các quá trình quay lui, vét cạn
Queue:
 Tổ chức lưu vết các quá trình tìm kiếm theo chiều
rộng, và quay lui vét cạn,
 Tổ chức quản lý và phân phối tiến trình trong các
hệ điều hành,
 Tổ chức bộ đệm bàn phím, …
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCác thao tác trên Stack
• Push(o): Thêm đối tượng o vào Stack
• Pop(): Lấy đối tượng từ Stack
• isEmpty(): Kiểm tra Stack có rỗng hay không
• Top(): Trả về giá trị của phần tử nằm đầu
Stack mà không hủy nó khỏi Stack.
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt Stack
 Dùng mảng 1 chiều
 Dùng danh sách liên kết đơn
6 5 1 8 24
S
Data S [N];
int t;
List S
 Thêm và hủy cùng phía
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài Stack bằng mảng 1 chiều
Cấu trúc dữ liệu của Stack
typedef struct tagStack
{
int a[max];
int t;
}Stack;
Khởi tạo Stack:
void CreateStack(Stack &s)
{
s.t=-1;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleKiểm tra tính rỗng và đầy của Stack
int IsEmpty(Stack s)//Stack có rỗng hay không
{
if(s.t==-1)
return 1;
else
return 0;
}
int IsFull(Stack s) //Kiểm tra Stack có đầy hay không
{
if(s.t>=max)
return 1;
else
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThêm 1 phần tử vào Stack
int Push(Stack &s, int x)
{
if(IsFull(s)==0)
{
s.t++;
s.a[s.t]=x;
return 1;
}
else
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleLấy 1 phần tử từ Stack
int Pop(Stack &s, int &x)
{
if(IsEmpty(s)==0)
{
x=s.a[s.t];
s.t--;
return 1;
}
else
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài Stack bằng danh sách liên kết
• Kiểm tra tính rỗng của Stack
int IsEmpty(List &s)
{
if(s.pHead==NULL)//Stack rong
return 1;
else
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThêm 1 phần tử vào Stack
void Push(List &s,Node *Tam)
{
if(s.pHead==NULL)
{
s.pHead=Tam;
s.pTail=Tam;
}
else
{
Tam->pNext=s.pHead;
s.pHead=Tam;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleLấy 1 phần tử từ Stack
int Pop(List &s,int &trave)
{ Node *p;
if(IsEmpty(s)!=1)
{
if(s.pHead!=NULL)
{ p=s.pHead;
trave=p->Info;
s.pHead=s.pHead->Next;
if(s.pHead==NULL)
s.Tail=NULL;
return 1;
delete p;
}
}
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCác thao tác trên Queue
• EnQueue(O): Thêm đối tượng O vào cuối hàng
đợi.
• DeQueue(): Lấy đối tượng ở đầu hàng đợi
• isEmpty(): Kiểm tra xem hàng đợi có rỗng hay
không?
• Front(): Trả về giá trị của phần tử nằm đầu
hàng đợi mà không hủy nó.
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt Queue
• Dùng mảng 1 chiều
• Dùng danh sách liên kết đơn
6 5 1 8 24
Head
Data S [N];
int f,r;
List Q
* Thêm và hủy Khác phía
Tail
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt Queue bằng mảng 1 chiều
• Cấu trúc dữ liệu:
typedef struct tagQueue
{
int a[100];
int Front; //chỉ số của phần tử đầu trong Queue
int Rear; //chỉ số của phầ tử cuối trong Queue
}Queue;
• Khởi tạo Queue rỗng
void CreateQueue(Queue &q)
{ q.Front=-1;
q.Rear=-1;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleLấy 1 phần tử từ Queue
int DeQueue(Queue &q,int &x)
{
if(q.Front!=-1) //queue khong rong
{
x=q.a[q.Front];
q.Front++;
if(q.Front>q.Rear)//truong hop co mot phan tu
{
q.Front=-1;
q.Rear=-1;
}
return 1;
}
else //queue trong
{
printf("Queue rong");
return 0;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThêm 1 phần tử vào Queue
void EnQueue(Queue &q,int x)
{
int i;
int f,r;
if(q.Rear-q.Front+1==N)//queue bi day khong the them vao duoc nua
printf("queue day roi khong the them vao duoc nua");
else
{
if(q.Front==-1)
{
q.Front=0;
q.Rear=-1;
}
if(q.Rear==N-1)//Queue đầy ảo
{
f=q.Front;
r=q.Rear;
for(i=f;i<=r;i++)
q.a[i-f]=q.a[i];
q.Front=0;
q.Rear=r-f;
}
q.Rear++;
q.a[q.Rear]=x;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleCài đặt Queue bằng List
• Kiểm tra Queue có rỗng?
int IsEmpty(List &Q)
{
if(Q.pHead==NULL)//Queue rỗng
return 1;
else
return 0;
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleThêm 1 phần tử vào Queue
void EnQueue(List &Q, Node *Tam)
{
if(Q.pHead==NULL)
{
Q.pHead=Tam;
Q.pTail=Tam;
}
else
{
Q.pTail->Next=tam;
Q.pTail=tam;
}
}
CấutrúcdữliệuvàthuậtgiảiCẤUTRÚCDỮLIỆUVÀGIẢITHUẬT1 Click To Edit Master Title StyleLấy 1 phần tử từ Queue
int DeQueue(List &Q,int &trave)
{ Node *p;
if(IsEmpty(Q)!=1)
{
if(Q.pHead!=NULL)
{ p=Q.pHead;
trave=p->Info;
Q.pHead=Q.pHead->Next;
if(Q.pHead==NULL)
Q.pTail=NULL;
return 1;
delete p;
}
}
return 0;
}

Mais conteúdo relacionado

Semelhante a ctdl&amp;gt 04-list_don

ctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kepctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kepkikihoho
 
Cây nhị phân tìm kiếm
Cây nhị phân tìm kiếmCây nhị phân tìm kiếm
Cây nhị phân tìm kiếmkikihoho
 
Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2Hồ Lợi
 
Ctdl C06
Ctdl C06Ctdl C06
Ctdl C06giang
 
02 stack queue
02 stack queue02 stack queue
02 stack queuelanheo04
 
Cấu trúc dữ liệu động
Cấu trúc dữ liệu động Cấu trúc dữ liệu động
Cấu trúc dữ liệu động kikihoho
 
Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...
Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...
Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...trantungminh4034
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Hồ Lợi
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Hồ Lợi
 
Ctdl C04
Ctdl C04Ctdl C04
Ctdl C04giang
 
Ctdl C10
Ctdl C10Ctdl C10
Ctdl C10giang
 
Bai10 stack queue
Bai10 stack queueBai10 stack queue
Bai10 stack queueHồ Lợi
 
Chuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdfChuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdfEcCrm
 

Semelhante a ctdl&amp;gt 04-list_don (16)

ctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kepctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kep
 
Cây nhị phân tìm kiếm
Cây nhị phân tìm kiếmCây nhị phân tìm kiếm
Cây nhị phân tìm kiếm
 
Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2Cấu trúc dữ liệu cơ bản 2
Cấu trúc dữ liệu cơ bản 2
 
Ctdl C06
Ctdl C06Ctdl C06
Ctdl C06
 
02 stack queue
02 stack queue02 stack queue
02 stack queue
 
Baigiang ctdl
Baigiang ctdlBaigiang ctdl
Baigiang ctdl
 
Cấu trúc dữ liệu động
Cấu trúc dữ liệu động Cấu trúc dữ liệu động
Cấu trúc dữ liệu động
 
Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...
Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...
Danh sách liên kết là 1 cấu trúc dữ liệu được sử dụng để lưu trữ 1 tập hợp cá...
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
Sql understanding
Sql understandingSql understanding
Sql understanding
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3
 
Ctdl C04
Ctdl C04Ctdl C04
Ctdl C04
 
Ctdl C10
Ctdl C10Ctdl C10
Ctdl C10
 
Cây Nhị Phân
Cây Nhị PhânCây Nhị Phân
Cây Nhị Phân
 
Bai10 stack queue
Bai10 stack queueBai10 stack queue
Bai10 stack queue
 
Chuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdfChuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdf
 

Mais de kikihoho

Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trungkikihoho
 
chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)kikihoho
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boolekikihoho
 
chuong 3. quan he
chuong 3. quan hechuong 3. quan he
chuong 3. quan hekikihoho
 
chuong 2. phep dem
chuong 2. phep demchuong 2. phep dem
chuong 2. phep demkikihoho
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logickikihoho
 
Đề thi 03
Đề thi 03Đề thi 03
Đề thi 03kikihoho
 
Đề thi 02
Đề thi 02Đề thi 02
Đề thi 02kikihoho
 
14 đề thi thực hành
14 đề thi thực hành 14 đề thi thực hành
14 đề thi thực hành kikihoho
 
Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân kikihoho
 
Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nộikikihoho
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01kikihoho
 
csdl-trigger
csdl-triggercsdl-trigger
csdl-triggerkikihoho
 
csdl bai-thuchanh_02
csdl bai-thuchanh_02csdl bai-thuchanh_02
csdl bai-thuchanh_02kikihoho
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01kikihoho
 
csdl - buoi13-14
csdl - buoi13-14csdl - buoi13-14
csdl - buoi13-14kikihoho
 
csdl - buoi10-11-12
csdl - buoi10-11-12csdl - buoi10-11-12
csdl - buoi10-11-12kikihoho
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9kikihoho
 
csdl - buoi5-6
csdl - buoi5-6csdl - buoi5-6
csdl - buoi5-6kikihoho
 
csdl - buoi2-3-4
csdl - buoi2-3-4csdl - buoi2-3-4
csdl - buoi2-3-4kikihoho
 

Mais de kikihoho (20)

Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
 
chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
chuong 3. quan he
chuong 3. quan hechuong 3. quan he
chuong 3. quan he
 
chuong 2. phep dem
chuong 2. phep demchuong 2. phep dem
chuong 2. phep dem
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logic
 
Đề thi 03
Đề thi 03Đề thi 03
Đề thi 03
 
Đề thi 02
Đề thi 02Đề thi 02
Đề thi 02
 
14 đề thi thực hành
14 đề thi thực hành 14 đề thi thực hành
14 đề thi thực hành
 
Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân
 
Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nội
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01
 
csdl-trigger
csdl-triggercsdl-trigger
csdl-trigger
 
csdl bai-thuchanh_02
csdl bai-thuchanh_02csdl bai-thuchanh_02
csdl bai-thuchanh_02
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
 
csdl - buoi13-14
csdl - buoi13-14csdl - buoi13-14
csdl - buoi13-14
 
csdl - buoi10-11-12
csdl - buoi10-11-12csdl - buoi10-11-12
csdl - buoi10-11-12
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
 
csdl - buoi5-6
csdl - buoi5-6csdl - buoi5-6
csdl - buoi5-6
 
csdl - buoi2-3-4
csdl - buoi2-3-4csdl - buoi2-3-4
csdl - buoi2-3-4
 

Último

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfhoangtuansinh1
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiNgocNguyen591215
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptPhamThiThuThuy1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxTrnHiYn5
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhdangdinhkien2k4
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 

Último (20)

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 

ctdl&amp;gt 04-list_don