...
ngtuananh_vn@yahoo
.com
8
Ví dụ tạo danhsáchliênkếtđơncc
số nguyên
typedef struct Node {
int infor;
Node * next;
};
Node *L;
ngtuananh_vn@yahoo
.com
2
Danh sáchliênkết đơn
ngtuananh_vn@yahoo
.com
35
3. ... )
1
3
10
L
M ≡ L
Bư c 1.
Bư c 2.
Xóa M
ngtuananh_vn@yahoo
.com
1
Chương 5
KHOA CNTT, BM: TIN H C TR C ĐỊA,
Nguyễn Tuấn Anh, ngtuananh_vn@yahoo.com
ĐẠI H C MỎ - ĐỊA CHẤT
DANH SÁCHLIÊN KẾT
Single Linked ...
ngtuananh_vn@yahoo
.com
5
infor Next
Dữ liệu
Trường liênkết
L
3
Next
7
Next
8
DANH SÁCHLIÊNKẾT ĐƠN
ngtuananh_vn@yahoo
.com
50
TH2: Xóa nút p ở giữa danh sách
2
F
5
L
3
P
4 NIL
q
1. q->next...
... trư c và
sau nó trong danh sách.
- Danhsáchliênkết vòng: phần tử cuối danhsáchliênkết với phần tử đầu danh
sách.
1.3. Danhsáchliênkết đơn.
1.3.1. Khái niệm.
Danh sáchliênkếtđơn ... sáchliênkết gồm c nhiều loại kh c
nhau:
- Danhsáchliênkết đơn: mỗi phần tử liênkết với phần tử đứng sau nó trong danh
sách.
- Danhsáchliênkết đôi/kép: mỗi phần tử liênkết với cc ... bằng danhsáchliênkết đơn
CHƯƠNG 1: C SỞ LÝTHUYẾT
1. Tổng quan về danhsáchliên kết
1.1. Định nghĩa
Danh sáchliênkết là danhsách mà cc phần tử ( Node) liênkết với nhau nhờ
vào vùng liên...
... }
}
Bài 3: cho danhsách sinh viên. mỗi sinh viên gồm cc thông tin: MSSV, họ tên, địa chỉ, giới tính và điểm trung bình th c hiện cc yêu c u sau:
1: Nhập danhsách sinh viên.
2: Xuất danhsách sinh ... }
Init(l);
}
Bài 2: cho 2 danhsáchliênkết l1 và l2, gồm cc phần tử là số nguyên, th c hiện cc yêu c u sau:
1: sắp xếp l1 và l2 tắng dần.
2: nối l1 và l2 thành l3 sao cho l3 tăng dần.
return ... 5- Xem tat ca");
printf("\n 6- Xuat toan bo");
printf("\n Chuc nang chon:");chucnang=getch();
switch(chucnang){
case ‘1’:
printf("\n Ma mat hang:");scanf("%d",&mh.mahang);
printf("\n...
... 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 danhsáchliênkết đơn
C u tr c dữ liệu và thuật giải
C U TR C DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit ... hàm delete.
C u tr c dữ liệu và thuật giải
C U TR C DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title Style
Hủy danhsáchliênkết đơn
Bư c 1:
Trong khi (danh sách chưa ht) thc hin
ã
B11: ... giải
C U TR C DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title Style
C c thao t c cơ bản trên DSLK đơn
Tạo 1 danhsáchliênkế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...
...
Ngư c lại:
B1: pTruoc là con trỏ đứng trư c con trỏ cuối c a danhsách
B2: Cho pTruoc trỏ kế tiếp tới NULL
B3: Xóa con trỏ cuối
B4: Gán con trỏ cuối là pTruoc
- C i đặt:
void XoaCuoi(LIST ... minh họa)
- Đầu vào: DSLK đơn l
- Kết quả: DSLK đơn l sau khi hủy (rỗng)
CC THAO T C TRÊN DANH
SÁCH LIÊNKẾTĐƠN C+ +
- C i đặt:
void XoaDau(LIST &l)
{
if(l.pHead!=NULL) ... DSLK đơn l, node p để x c định node c n xóa
- Kết quả: DSLK đơn l sau khi xóa phần tử sau p
- Giải thuật:
*Trường hợp 1: Nếu p là con trỏ cuối thì kết th c
*Trường hợp 2: (p kh c con trỏ cuối)...
... pTail
4f4
3f
N75f6
4f
5f
pHead pTail
C u tr c dữ liệu và thuật giải
C U TR C DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title Style
Hủy danhsáchliênkết đơn
Bư c 1:
Trong khi (danh sách chưa ht) thc hin
ã
B11: ... List
Node *pTail; //Lưu địa chỉ c a Node cuối c ng trong List
}LIST; // kiểu danhsáchliênkết đơn
Info
pNext
C u tr c dữ liệu và thuật giải
C U TR C DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title ... thì
pTail=p
C u tr c dữ liệu và thuật giải
C U TR C DỮ LIỆU VÀ GIẢI THUẬT 1
Click To Edit Master Title Style
Sắ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 cc phần...
... 1 stack đã c
public:
Stack( ); // C O N S T R U C T O R
Stack( const Stack & ); // C O P Y C O N S T R U C T O R
~Stack( ); // DES T R U C T O R
bool isEmpty( ) ; //Kiểm tra Stack rỗng?
... Xây dựng stack bằng danhsáchliênkết đơn
Dùng kỷ thuật template để xây dựng một stack c thể lưu trữ bất kỳ. ở đây T là kiểu bất kỳ
template <class T> class Stack{
private:
struct Node{
T ... M c đích: Trả về giá trị trên c ng c a satck S
Sử dụng: S.topOfStack();
Đầu vào: một stack S bất kỳ
Đầu ra: trả về về giá trị ở đỉnh stack S nếu S không rỗng
Code:
template <class T> const...
... stack:
Data S [N];
int t;
Biểu diễn Stack dùng danhsáchliênkếtđơn
VD:
LIST S;
C c thao t c:
Tạo Stack S rỗng (S.pHead=l.pTail= NULL sẽ tạo ra một Stack S
rỗng)
Kiểm tra stack ... một stack bằng c ch khai báo một mảng 1 chiều
với kích thư c tối đa là N (ví dụ, N c thể bằng 1000).
VD:
Tạo stack S và quản lý đỉnh stack bằng biến t – chỉ số c a
phần từ trên c ng ... cc lệnh trong máy tính điện tử.
Bài tập:
11
III. Ngăn xếp (stack)
Stack chứa cc đối tượng làm vi c theo c chế LIFO (Last In
First Out) nghĩa là vi c thêm một đối tượng vào stack...
... tử cuối danhsách
}DLIST;
1. Chèn một phần tử vào danh sách:
C 4 loại thao t c chèn new_ele vào danh sách:
C ch 1: Chèn vào đầu danhsách
10
C i đặt :
C ch 2: Chèn vào cuối danh ... Thăm cc nút trên danhsách
- Ðếm cc phần tử c a danh sách,
- Tìm tất ccc phần tử thoả điều kiện,
- Huỷ toàn bộ danhsách (và giải phóng bộ nhớ)
Thuật toán xử lý cc nút trên danh sách: ... cuối danhsách
C i đặt :
C ch 3 : Chèn vào danhsách sau một phần tử q
C i đặt :
C ch 4 : Chèn vào danhsách trư c một phần tử q
C i đặt :
2. Hủy một phần tử khỏi danhsách
- Hủy...