Cách khai báo con tr ỏCác phép toán trên con tr ỏ... Phép duyệt cây theo thứ tự trước NLR cho kết quả ABDEHCFIGJ.. Nếu duyệt theo thứ tự giữa LNR ta có kết quả: DBHEAFICGJ.. Hãy cho biết
Trang 1Ôn t ậ p t ố t nghi ệ p
Nội dung ôn tập
Ch ươ ng 1: Ôn t ậ p K ỹ thu ậ t l ậ p trình
Ch ươ ng 2: Tìm ki ế m, S ắ p x ế p
Ch ươ ng 3: Danh sách liên k ế t
Ch ươ ng 4: Cây
2
Trang 2Ôn t ậ p t ố t nghi ệ p
Tài liệu học tập
Giáo trình:
C & Data Structures, P S Deshpande, O G Kakde
-CHARLES RIVER MEDIA, INC Hingham, Massachusetts
Trang 3Cách khai báo con tr ỏ
Các phép toán trên con tr ỏ
Trang 5Ôn t ậ p t ố t nghi ệ p
Con trỏ
Cho biết kết quả của chương trình sau:
int Test(int &a, int b, int &c) {
a ; a+=b; ++c=a+b;
Trang 9Ch ươ ng 2: Tìm ki ế m, S ắ p x ế p 17
18
Trang 11Nếu X nhỏ hơn thì tiếp tục tìm kiếm ở phần danh sách bên trái phần tử giữa
0 1 2 3 4 5 6 7 8 9 10 11
Trang 13int TimKiem(int M[],int First, int Last,int X){
if(First > Last) return -1;
int Mid = (First+Last)/2;
if(M[Mid] == X) return Mid;
if(X < M[Mid]) return TimKiem(M,First,Mid-1,X);
else return TimKiem(M,Mid+1,Last,X);
Trang 15Ôn t ậ p t ố t nghi ệ p
Sắp xếp
Cho m ả ng A[]={11, 16, 12, 75, 51, 54, 73, 36, 52, 98};
C ầ n th ự c hi ệ n bao nhiêu l ầ n để m ả ng A có th ứ t ự tăng
d ầ n theo ph ươ ng pháp s ắ p x ế p Chèn tr ự c ti ế p (Insertion Sort)?
C ầ n th ự c hi ệ n bao nhiêu l ầ n để m ả ng A có th ứ t ự tăng
d ầ n theo ph ươ ng pháp s ắ p x ế p Ch ọ n tr ự c ti ế p (Selection Sort)?
Trang 17Ôn t ậ p t ố t nghi ệ p
Sắp xếp
Cho m ả ng A[]={12, 2, 8, 5, 1, 6, 4, 15} Các giá tr ị c ủ a
m ả ng A đượ c s ắ p x ế p t ă ng d ầ n theo t ừ ng b ướ c nh ư sau:
Trang 21A Thêm ph ầ n t ử p vào đầ u danh sách
B Thêm ph ầ n t ử p vào cu ố i danh sách
C Xóa ph ầ n t ử p kh ỏ i danh sách
D Xóa ph ầ n t ử cu ố i danh sách
Trang 22Tìm mô t ả chính xác cho hàm trên?
43
A Hàm luôn tr ả v ề con tr ỏ NULL
B Hàm tr ả v ề đị a ch ỉ c ủ a nút đầ u tiên trong danh sách đượ c tìm th ấ y, ng ượ c l ạ i hàm
Trang 23Ôn t ậ p t ố t nghi ệ p
Danh sách liên kết
Đ o ạ n mã sau dùng để t ạ o danh sách liên k ế t đơ n g ồ m 2 ph ầ n t ử có giá tr ị 18 và 32 Dòng
l ệ nh nào sau đ ây s ẽ đượ c b ổ sung vào v ị trí còn thi ế u c ủ a đ o ạ n mã?
Trang 24Ôn t ậ p t ố t nghi ệ p
Ngăn xếp (stack), Hàng đợi (queue)
Đị nh ngh ĩ a c ấ u trúc Node trong stack, queue
Trang 25Ôn t ậ p t ố t nghi ệ p
Th ự c hi ệ n đ o ạ n ch ươ ng trình sau v ớ i hàm Push và Pop c ủ a Stack s:
IntStack s = new IntStrack();
Trang 27Ôn t ậ p t ố t nghi ệ p
Cây nhị phân
Đị nh ngh ĩ a c ấ u trúc Node trong cây nh ị phân
Các phép toán trong cây nh ị phân
Trang 28Ôn t ậ p t ố t nghi ệ p
Cây nhị phân
Cho cây nhị phân T Phép duyệt cây theo thứ tự trước (NLR) cho
kết quả ABDEHCFIGJ Nếu duyệt theo thứ tự giữa (LNR) ta có kết
quả: DBHEAFICGJ Hãy cho biết các nút của cây con trái:
Trang 30Ô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 nh ị phân tìm ki ế m
59
Cây nhị phân tìm kiếm
Đoạn mã nào sau đây là cách khai báo cấu trúc của cây nhị phân tìm kiếm?
60
A typedef struct *node {int key; node Left; node Right; };
B typedef struct *node { node Left; node Right; };
C typedef struct node {int key; node *Left; node *Right; };
D typedef struct node {int key; node Left; node Right; };
Trang 31Ôn t ậ p t ố t nghi ệ p
Cây nhị phân tìm kiếm
Cho cây nhị phân tìm kiếm như hình vẽ Kết quả của phép duyệt
Cây nhị phân tìm kiếm
Cho cây nhị phân tìm kiếm như hình vẽ Kết quả của phép duyệt
Trang 32Ôn t ậ p t ố t nghi ệ p
Cây nhị phân tìm kiếm
Phép duyệt LRN của cây nhị phân tìm kiếm là: 5, 13, 6, 17, 14 Hãy tìm kết quả của phép duyệt theo thứ tự trước (NLR) là:
Cây nhị phân tìm kiếm
Cây nhị phân tìm kiếm được tạo từ những số sau: 4, 2, 1, 6, 3, 8 Xác định chiều cao của cây?
Trang 33Ôn t ậ p t ố t nghi ệ p
Cây nhị phân tìm kiếm
Cho cây nhị phân tìm kiếm (xem hình vẽ) Sau khi xóa nút 12, nút bên phải của nút 5 là?