Thông tin tài liệu
CẤU TRÚC DỮ LIỆU VÀ
GIẢI THUẬT
DATA STRUCTURE AND
ALGORITHMS
GV: Phạm Tuấn Hiệp
Email:
hiep0109@yahoo.com
Ô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
Ô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.
Tham khảo:
Giáo trình Cấu trúc dữ liệu 1, Trần Hạnh Nhi – Dương Anh
Đức, Trường ĐHKHTN – ĐHQG TP.HCM.
Phần mềm lập trình:
C-Free 4.0
Borland C++
…
3
Chương 1: Ôn tập Kỹ thuật lập trình
4
Ôn tập tốt nghiệp
Nội dung
Con trỏ
Mảng 1 chiều
Đệ quy
5
Ôn tập tốt nghiệp
Con trỏ
Cách khai báo con trỏ
Các phép toán trên con trỏ
6
void main(){
int x=10, y=20;
int *p, *q;
p=&x;
q=&y;
cout<<x<<" "<<y<<endl;
cout<<*p<<" "<<*q<<end;
}
Cho biết kết quả in ra màn hình?
x = 10
y = 10
p = 10
q = 10
Ôn tập tốt nghiệp
Con trỏ
void main(){
int x=10, y=20;
int *p, *q;
p=&x;
q=&y;
*p=50;
*q=90;
cout<<x<<" "<<y<<endl;
cout<<*p<<" "<<*q<<end;
}
Cho biết kết quả in ra màn hình?
7
x = 50
y = 90
p = 50
q = 90
Ôn tập tốt nghiệp
Con trỏ
void main(){
int x=10, y=20;
int *p, *q;
p=&x;
q=&y;
*p=50;
*q=90;
p=q;
cout<<x<<" "<<y<<endl;
cout<<*p<<" "<<*q<<end;
}
Cho biết kết quả in ra màn hình?
8
x = 50
y = 90
p = 90
q = 90
Ô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;
return a+b+c;
}
int x=5, y=2, z=2011;
void main(){
cout<<Test(x,y,z)<<" "<<x<<" "<<y<<" "<<z<<endl;
}
9
A. 16 6 2 2011
B. 16 5 2 8
C. 16 5 2 2011
D. 16 6 2 8
Ôn tập tốt nghiệp
Nội dung
Con trỏ
Mảng 1 chiều
Đệ quy
10
Ôn tập tốt nghiệp
Mảng 1 chiều
Khai báo mảng
Các phép toán trên mảng
11
void function(char *s1, char *s2){
while (*(s1++)=*(s2++));
}
void main(){
char s2[100];
char s1[]="Giao Trinh Ngon Ngu C++";
function(s2,s1);
cout<<s2;
}
Cho biết kết quả in ra màn hình?
Giao Trinh Ngon Ngu C++
Ôn tập tốt nghiệp
Mảng 1 chiều
void main(){
float a[5]={5, 4, 3, 2, 1};
float x;
int i;
for(i=0; i<5; i++)
a[i] += a[0];
x=a[1]+a[4];
cout<<x;
}
Cho biết kết quả in ra màn hình?
12
A. 125
B. 5
C. 100
D. 25
Ôn tập tốt nghiệp
Mảng 1 chiều
Cho biết kết quả của chương trình sau:
void main(){
int a[]={5,1,12,11,8,20,14,12,7};
for(int i=4;i<=7;i++)
for(int j=i+1;j<=8;j++)
if(a[i]>a[j]){
int t=a[i]; a[i]=a[j]; a[j]=t;
}
cout<<a[6];
}
13
A. 7
B. 12
C. 8
D. 20
Ôn tập tốt nghiệp
Nội dung
Con trỏ
Mảng 1 chiều
Đệ quy
14
Ôn tập tốt nghiệp
Đệ quy
Đệ quy là sự gọi lại chính nó khi thực hiện
Thường được dùng cho các bài toán truy hồi
15
Cho hàm đệ quy sau:
int Func(int n){
if(n == 5) return 5;
else
return 2 * Func(n+1);
}
Giá trị của Func(2) là?
A. 50
B. 2
C. 5
D. 40
Ôn tập tốt nghiệp
Đệ quy
void Foo(int x){
if(x>0)
Foo(x-3);
cout<<x<<" ";
}
Cho biết kết quả in ra màn hình khi goi hàm Foo(6)?
16
A. 6 3
B. 0 3 6
C. 0 3
D. 6 3 0
Chương 2: Tìm kiếm, Sắp xếp
17
Ôn tập tốt nghiệp
Nội dung
Tìm kiếm tuyến tính, nhị phân
Các thuật toán sắp xếp
Đổi chỗ trực tiếp (Interchange sort)
Nổi bọt (Bubble sort)
Chèn trực tiếp (Insertion sort)
Chọn trực tiếp (Selection sort)
Dựa trên phân hoạch (Quick sort)
18
Ôn tập tốt nghiệp
Tìm kiếm tuyến tính (tuần tự)
19
Ý tưởng:
Bắt đầu từ phần tử đầu tiên của danh sách, so sánh lần
lượt từng phần tử của danh sách với giá trị X cần tìm
Nếu có phần tử bằng X thì trả về vị trí tìm thấy, thuật toán
dừng lại (thành công)
Nếu đến cuối danh sách mà không có phần tử nào bằng X,
thuật toán dừng lại (không thành công)
Ôn tập tốt nghiệp
Tìm kiếm tuyến tính (tuần tự)
20
13
1 2 n
3 5 10 13 6 9
A[0] A[n-1]
i=0 i=1i i=2 i=3
3
Tìm thấy tại
vị trí 4
19
i=4 i=5
-1
Tìm Ko thấy
[...]... cấu trúc Node trong dslk Các phép toán trên trên dslk Thêm đầu Thêm cuối Thêm sau phần tử q Xóa đầu Xóa cuối Xóa sau phần tử q Xóa với giá trị X cho trước Duyệt danh sách Ôn tập tốt nghiệp Danh sách liên kết 39 Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau: typedef struct Node{ int Key; Node *pNext; }; Trong đó khai báo Node *pNext dùng để mô tả: A Con trỏ trỏ tới phần dữ. .. Ngăn xếp (stack), Hàng đợi (queue) 47 Định nghĩa cấu trúc Node trong stack, queue Cách thức hoạt động của stack, queue Ôn tập tốt nghiệp Ngăn xếp (stack), Hàng đợi (queue) 48 Ngăn xếp (Stack) thường được gọi là cấu trúc dạng? A IFOF B FILO C LIFO D ILFO Ôn tập tốt nghiệp Ngăn xếp (stack), Hàng đợi (queue) 49 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();... dung 58 Cây nhị phân Cây nhị phân tìm kiếm Ôn tập tốt nghiệp Cây nhị phân tìm kiếm 59 Đị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 Nút gốc lớn hơn nút bên trái và nhỏ hơn nút bên phải Ôn tập tốt nghiệp Cây nhị phân tìm kiếm 60 Đ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? A typedef struct *node {int key; node Left; node Right; }; B... thêm phần tử vào đầu danh sách liên kết trỏ bởi varFirst: if(isEmpty()){ varFirst=new ListNode(element); varFirst- >data = element; } else{ ListNode temp=new ListNode(); temp- >data= element; temp->next= _; } Xác định phần tử còn thiếu: A element B temp C varFirst D ListNode Ôn tập tốt nghiệp Danh sách liên kết 45 Đ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... các ký tự A,B,C,D,E vào hàng đợi Q (theo thứ tự A,B,…), sau đó xóa khỏi Q Các ký tự lần lượt được xóa khỏi Q là? A C B D A E B A B C D E C E D C B A D E A D B C Ôn tập tốt nghiệp 51 Chương 4: Cây Nội dung 52 Cây nhị phân Cây nhị phân tìm kiếm Ôn tập tốt nghiệp Cây nhị phân 53 Đị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 Khởi tạo cây Thêm một nút mới vào cây Các phép duyệ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ã? struct NodeType{ int data; NodeType *next; }; void main(){ NodeType *p; NodeType *q; p=new NodeType; p- >data= 18; q=new NodeType; q- >data= 32; A q=p->next; B p->next=q; q->next=NULL; C p->next=q->next; } D p=q; Ôn tập tốt nghiệp Nội dung 46 Danh... L.pHead = p; L.pTail = p; } else{ L.pTail->pNext = p; L.pTail = p; } } A 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 Ôn tập tốt nghiệp Danh sách liên kết 43 Cho hàm sau: Node *Function(List L, int k){ Node *p=L.pHead; while(p!=NULL){ if(p- >data == k) break; p=p->pNext; } return p; } Tìm mô tả chính xác cho hàm trên? A Hàm... Các thuật toán sắp xếp Đổi chỗ trực tiếp (Interchange sort) Nổi bọt (Bubble sort) Chèn trực tiếp (Insertion sort) Chọn trực tiếp (Selection sort) Dựa trên phân hoạch (Quick sort) Ôn tập tốt nghiệp Sắp xếp 28 void T(int A[], int n){ int i, j, tmp; for(i=1; i0 && A[j-1] > A[j]){ tmp = A[j]; A[j] = A[j-1]; A[j-1] = tmp; j ; } } A Bubble sort B Selection sort } C Insertion sort Thuật. .. kết quả: DBHEAFICGJ Hãy cho biết các nút của cây con trái: A BDHE B FIHE C DHEG D DEH Ôn tập tốt nghiệp Cây nhị phân 56 Cho cây nhị phân với nút gốc A Nút gốc có con bên 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)? A DBEAC B ABCDE C ABDEC D DEBAC Ôn tập tốt nghiệp Cây nhị phân 57 Cho hàm sau: void T(TreeNode *Root){ if(Root==NULL)... giá trị X D Hàm trả về 1 nếu không tìm thấy phần tử có giá trị X Ôn tập tốt nghiệp Tìm kiếm 25 Cho thuật toán (được thể hiện bằng mã giả): B1: k = 1 B2: IF(M[k] == X && k != N) B2.1: k++ B2.2: Lặp lại B2 B3: IF (k < N) Thông báo tìm thấy tại vị trí k B4: ELSE Không tìm thấy B5: Kết thúc Đoạn mã trên mô tả thuật toán gì? A Tìm nhị phân phần tử có giá trị X B Tìm phần tử nhỏ nhất trong mảng M bao gồm N . CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT DATA STRUCTURE AND ALGORITHMS GV: Phạm Tuấn Hiệp Email: hiep0109@yahoo.com Ô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 . 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. Tham khảo: Giáo trình Cấu trúc dữ liệu 1, Trần. nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau: typedef struct Node{ int Key; Node *pNext; }; Trong đó khai báo Node *pNext dùng để mô tả: 39 A. Con trỏ trỏ tới phần dữ liệu
Ngày đăng: 29/03/2014, 17:20
Xem thêm: BÀI GIẢNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT DATA STRUCTURE AND ALGORITHMS pptx, BÀI GIẢNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT DATA STRUCTURE AND ALGORITHMS pptx