BÀI GIẢNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT DATA STRUCTURE AND ALGORITHMS pptx

33 967 5
BÀI GIẢNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT DATA STRUCTURE AND ALGORITHMS pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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 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 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 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 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 con bên phải là C B có con bên trái là D 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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan