... C u Tr cDữLiệuBàiTập Chương 2 – Phần 1
1
BAØI TAÄP CHÖÔNG 2 (1)
(Danh sách đ cvà liên kết đơn)
1. Viết chương trình c i đặt và th c hiện cc phép toán như thêm, xóa, tìm kiếm, …
c c ...
c c phần tử trên danh sách đ c.
2. Viết chương trình tạo một DSLK đơn với cc phần tử là cc số nguyên dương. Sau
đó th c hiện cc yêu c u sau:
a) In nội dung cc phần tử trong danh sách. ... trí c a phần tử đã tìm thấy và phần tử mới trong c u b).
d) In nội dung cc phần tử trong danh sách đã th c hiện ở c u c) . Sau khi in
xong, cc phần tử trong danh sách bị xóa.
3. Viết chương...
... p ậ
C/ C++
C u tr cdữ liệu
(1) Sự tổ ch c hợp lý c a cc thành phần dữ liệu,
(2) Tậpcc thao t c để truy c p cc thành phần dữ liệu.
(1) the logical arrangement of data elements, combined ... ậ
C/ C++
Nội dung
C u tr cdữ liệu
Thuật toán
Độ ph ctạpc a thuật toán
6
Ch ng 1: ươ Ôn t p C/ C+ậ
+
Ch n g 1 : ươ Ôn t p ậ
C/ C++
Nội dung
C u tr cdữ liệu
Thuật toán
Độ ph ctạpc a thuật ... ậ
C/ C++
Mối quan hệ c a CTDL và thuật toán
CTDL + Thuật toán = Chương
trình
12
Ch ng 1: ươ Ôn t p C/ C+ậ
+
Ch n g 1 : ươ Ôn t p ậ
C/ C++
2. Cc cú pháp c bản
47
Ch ng 1: ươ Ôn t p C/ C+ậ
+
Ch...
... bu c mỗi SV phải c )
[2] Bài giảng & Bài th c hành CTDL - Trường ĐHCN.
[3] Giáo trình C u tr cdữliệu 1, Trần Hạnh Nhi –
Dương Anh Đ c, Trường DHKHTN – DHQG TP.HCM.
[4] C u tr cdữ liệu, ... u môn h c ệ ọ
11
Đồ án môn h c
M c đích:
Hiểu bài
Làm bài ở nhà theo từng SV
Chọn đồ án (1 sinh viên th c hiện 1 đồ án –viết tay tất
c ccbàitập th c hành vàccbàitập làm ... thi u môn h c ệ ọ
10
Bài tập th c hành
Đề bài tập:
Bài tập cho hàng tuần (file)
C cbài trong tài liệu tham khảo
Tự sưu tầm
Giải bài tập:
Giờ th c hành
Tự giải bài tập
Gi i thi...
... đề.
C c tiêu chuẩn khi lựa chọn c u tr cdữliệu
• C u tr cdữliệu trư c hết phải biểu diễn đưc đầy đủcc thông tin nhập và xuất c a bài
toán
• C u tr cdữliệu phải phù hợp với cc thao ... xét m c l c của một quyển sách. M c l c này c thể xem là một c y
Nút g c là sách, nó c ba c y con c g c là C1 , C2 , C3 . C y con thứ 3 c g c C3 là một nút
đơn đ c trong khi đó hai c y con ... đ c, nút tận c ng. Ví dụcc nút 1.1,
2.1.1, 2.1.2, 2.2, 2.3, c3 là cc nút là.
C p c a c y là c p cao nhất c a cc nút trên c y. Ví dục y
Sách
ở trên là c p 3.
C u tr cdữliệuvà Giải thuật...
... hỗ trợ
ứng dụng c hiệu quả hơn.
Cc giải thuật phụ thu c vào vào c u tr cdữliệu mà nó t c
động đến. Dữliệuđưc lưu trữ trên bộ nhớ chính và bộ nhớ
phụ.
13
2.2 Cc giải thuật tìm ... 24
2.3 Cc giải thuật tìm kiếm ngoại
Tìm kiếm theo chỉ m c (Index Search)
Vì lý do kích thư ctập tin c thể lớn (c thể do cc phần tử
chứa trong tập tin lớn) Thao t c đ ctập tin trên dữliệu ... kiếm theo chỉ m c (tt)
Ý tưởng
Đ c từ đầu tập tin chỉ m c, so sánh phần tử khóa chỉ m c với giá
trị X cho đến khi đ c đến phần tử c khóa chỉ m c >= giá trị X
hay đ c đến cuối tập tin.
Nếu...
... Bnumber^.next:=k;
BÀI TẬPC U TR CDỮ LIỆU
BÀI 1_3.
{ TRON 2 DANH SACH }
Procedure MergerList(L1,L2:List;Var L:List);
Var Q,P,T: List;
Begin
sapxep(L1);
sapxep(L2);
P:=first(L1);
{ CACH 1: while ... P:=P^.next;
end;
daoham:=k;
End;
BÀI 1_6: TH C HIỆN C NG 1 VÀO DÃY SỐ NHỊ PHÂN
Type
b=0 1;
Position=^Cell;
Cell=Record
bit:0 1;
next:Position;
end;
Procedure INCREMENT(Var Bnumber: Position; ... of Node;
max_node:integer;
end;
Var T: Tree;
{ CHIEU CAO CUA CAY }
Function Max(a,b:node):node;
Begin
if a>b then max:=a else max:=b;
end;
Function Height(n:node;T: Tree): integer;
Var h:integer;m:node;
Begin
...
... Program)
I. KHÁI NIỆM VỀ C U TR CDỮLIỆU
C u tr cdữliệuvà thuật toán 1
I. KHÁI NIỆM VỀ C U TR CDỮ LIỆU
1. C u tr cdữliệu là gì ? :
Dữliệu không cc u tr c (đơn giản):
Int, Char, Boolean, ... 1 chiều
Array 1 chiều
4
4
14
14
22
22
38
38
27
27
15
15
I. KHÁI NIỆM VỀ C U TR CDỮ LIỆU
C u tr cdữliệuvà thuật toán 1
I. KHÁI NIỆM VỀ C U TR CDỮ LIỆU
1. C u tr cdữliệu là gì ? :
C u tr c ... C u tr cdữliệuvà thuật toán 1
I. KHÁI NIỆM VỀ C U TR CDỮ LIỆU
1. C u tr cdữliệu là gì ? :
C u tr cdữliệuvà thuật toán 1
II. THUẬT GIẢI
1. Khái...
... (LNR) ta c kết
quả: DBHEAFICGJ. Hãy cho biết cc nút c a c y con trái:
55
A. BDHE
B. FIHE
C. DHEG
D. DEH
Ôn tập tốt nghiệp
C y nhị phân
Cho c y nhị phân với nút g c A. Nút g c có con bên trái ... trái là B và
con bên phải là C. B c con bên trái là D và con bên phải là E.
C ch duyệt nào sau đây là theo thứ tự giữa (LNR)?
56
A. DBEAC
B. ABCDE
C. ABDEC
D. DEBAC
Ôn tập tốt nghiệp
C y nhị ... trư c (NLR)
cho kết quả là:
54
A. ADBCEFG
B. AEDBCFG
C. ABDECFG
D. AEBDCGF
Ôn tập tốt nghiệp
C y nhị phân tìm kiếm
Định nghĩa c u tr c Node trong c y nhị phân tìm kiếm
Quy t c trong c y...
... nút c a danh sách c trờng info chứa nội dung c a nút và trờng
next là con trỏ chỉ đến nút kế tiếp trong danh sách.
* Lu ý:
- C u tr c danh sách liên kết là c u tr c động, cc nút đ c cấp ... Ta c 3 cc A, B, Cvà n dĩa đ c
xếp trên cc A sao cho dĩa nhỏ trên dĩa lớn.
HÃy viết chơng trình di chuyển n dĩa từ cc A sang ccC với cc B
làm trung gian, theo điều kiện :
- Mỗi lần chỉ ... S(n): ta c kết quả c a S(1), thay nó vào S(2), c S(2) ta thay nó vào
S(3) , c nh vậy c S(n-1) ta sẽ tính đ c S(n)
C ng nh cc lệnh lặp, cc thủ t c đệ qui c ng c thể th c hiện cc tính
toán...
... nghĩa vàcc khái niệm
C y nhị phân
C y nhị phân tìm kiếm (BST)
C y tổng quát
C c thuật ngữ
B c của nút và b c của c y
Nút A: b c 3, nút C b c 1
B c của c y: 3
Nút g c, Nút lá và nút ... đến nút con trái
BSTNode pRight; //con trỏ đến nút con phải
};
BSTNode root = NULL; //g c của c y
M c tiêu
Trang bị cho sinh viên cc khái niệm và ứng dụng c y
C i đặt và th c hiện cc phép ... đưc phân hoạch thành n tập riêng biệt
T1, T2 , , Tn, mỗi tập Ti là một c y
Giữa cc nút c quan hệ phân c p (hierarchical
relationship) gọi là “quan hệ cha con”
C y không c nút gọi là c y...
... đỉnh c a
cung đưc thêm c thu ctậpcc đỉnh hiện
c trong T không, nếu c , nghĩa là sẽ tạo
nên chu trình
C y khung (Spanning tree)
Ví dụ: Cho một đồ thị G vô hướng, liên
thông, c trọng ... danh sách kề (tt)
Chú ý
C c nút đầu danh sách đưc lưu vào một
mảng (truy c p nhanh)
Với đồ thị không định hướng c n đỉnh và e
c nh, thì c n n nút đầu và 2e nút ‘trong’ danh
sách
Với ... từ k tới j
n
k=1
C y khung (Spanning tree)
Chú ý
Một đồ thị G c thể c nhiều c y khung
C y khung theo chiều rộng, theo chiều sâu
C c cung trong c y khung không tạo nên chu
trình
•
Giữa...
... xếp một danh
sách cc giá trị bằng c ch lặp lại vi c đặt một
giá trị c thể vào đúng vị trí thích hợp cho nó
trong dãy sắp xếp
Nói c ch kh c, với mỗi vị trí trong danh sách,
giải thuật đi ... mãn
•
h
i
>h
2i+1
•
h
i
>h
2i+2
Chú ý
•
C c phần tử c chỉ số [n/2],…,n-1 là nút lá
•
HEAP c n phần tử thì c [n/2] nút trong
Sắp xếp lựa chọn (selection sort)
Ý tưởng:
Giải thuật “selection sort” sắp xếp một danh
sách ... (i<=j);
if (l<j) QuickSort(a,l,j);
if (r>i) QuickSort(a,i,r);
}
SẮP XẾP (SORTING)
Ví dụ 2:
Sắp xếp một danh sách c n bộ theo m c thu
nhập
Sắp xếp danh sách cccc em h c sinh theo
trật...
...
Khoa C ng nghệ thông tin
Trường Đại h c Ngân hàng TP.HCM
Chương 1. C u tr cdữ
liệu và giải thuật
Giải thuật
Định nghĩa: là dãy cccâu lệnh chặt chẽ
và rõ ràng x c định một trình tự cc thao ... 4
Giải bài toán bằng máy tính
Hai yếu tố tạo nên một chương trình máy
tính
C u tr cdữ liệu
Giải thuật
C u tr cdữliệu + Giải thuật = Chương trình
Một số ví dụ
int MaxSubSum1(const int ... toán A thành ccbài toán con
A1, A2,…, Am;
for (i = 1; i <= m ; i ++)
DivideConquer (Ai , xi);
Kết hợp cc nghiệm xi c a ccbài toán con Ai (i=1, …, m)
để nhận đưc nghiệm x c a bài toán...