1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc dữ liệu và giải thuật it05

61 39 6

Đ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

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 556,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một chương trình cài đặt trên máy tính được xác định bởi thành phần nào Chọn một câu trả lời a Cấu trúc dữ liệu b Thuật toán c Không phải là các thành phần d Cả hai thành phần Phản hồi Đáp án đúng là.

Trang 1

Một chương trình cài đặt trên máy tính được xác định bởi thành phần nào

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 1 – Đánh giá thuật toán, mục I, bản Text

Đây là định nghĩa của độ phức nào? “Được tính là tổng số chi phí về mặt không gian (bộ nhớ) cần thiết sử dụng cho thuật toán”

Trang 3

Đoạn mã sau đây làm nhiệm vụ gì?

void SXDSSV( int n, SV ds[]){ int min, i, j; SV tg; for( i=0 ; i<n-1 ; i++ ) { min = i; for( j=i+1 ; j<n ; j++ ) if ( ds[j].Tuoi < ds[min].Tuoi ) min = j; if( min != i )

{ tg = ds[min];

ds[min] = ds[i];

ds[i] = tg; } }}

Chọn một câu trả lời:

a Thực hiện sắp xếp danh sách SV theo Tuoi giảm dần bằng thuật toán Selection

b Thực hiện sắp xếp danh sách SV theo Tuoi tăng dần bằng thuật toán Insertion

c Thực hiện sắp xếp danh sách SV theo Tuoi tăng dần bằng thuật toán Selection

d Thực hiện sắp xếp danh sách SV theo Tuoi giảm dần bằng thuật toán Insertion

Trang 4

Tham khảo: Bài 2 – Tìm kiếm và sắp xếp – Mục II.1, Bản Hướng dẫn tự học.

Đoạn mã cài đặt hàm tìm kiếm nhị phân phần tử x trên dãy sắp xếp tăng dần:

int BinarySearch( int a[ ], int n, int x )

else if (x<a[middle]) right = middle - 1;

else left = middle + 1;

} while ( left <= right );

if ( left <= right ) return middle;

else return -1;//ko tìm thấy phần tử x

Trang 5

c n và 1

d 1 và n

Phản hồi

Đáp án đúng là: B 0 và n-1

Tham khảo: Bài 2 – Tìm kiếm và sắp xếp – Mục I.2, Bản Hướng dẫn tự học

Hàm mô tả sắp xếp nổi bọt (Bubble Sort) trên mảng M có N phần tử:

1 void BubbleSort(int M[ ], int N)

Tham khảo: Bài 3 – Các thuật toán sắp xếp phần 2, Mục II, Bản Hướng dẫn tự học

** Cho dãy sau: 42, 23, 74, 11, 65, 58 Dùng phương pháp sắp xếp chọn trực tiếp (Selection Sort)

để sắp xếp giảm dần, sau lần lặp thứ tư kết quả của dãy là thế nào?

Chọn một câu trả lời:

a 74, 65, 58, 11, 23, 42

Trang 8

Cho mảng a gồm các phẩn tử có giá trị như sau:

Tham khảo: Bài 3 – Các thuật toán sắp xếp phần 2, Mục II, Bản Hướng dẫn tự học

Cho dãy sau: 23, 78, 45, 8, 32, 56 Dùng phương pháp sắp xếp chọn trực tiếp (Selection Sort) để sắp xếp tăng dần, sau 3 lần lặp thì kết quả của dãy là thế nào?

Tham khảo: Bài 3 – Các thuật toán sắp xếp phần 2, Mục I, Bản Hướng dẫn tự học

Thủ tục mô tả thuật toán sắp xếp chọn trực tiếp:

void SapXepChonTrucTiep( T M[], int N)

Trang 9

for( int pos = K+1; pos<N; pos++)

if( Min > M[pos])

Trang 10

Cho dãy sau: 42, 23, 74, 11, 65, 58 Dùng phương pháp sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần, sau 4 lần lặp kết quả của dãy là thế nào?

Tham khảo: Bài 3 – Các thuật toán sắp xếp phần 2, Mục II, Bản Hướng dẫn tự học

Cho thuật toán sắp xếp Bubble Sort như sau:

void BubbleSort( int M[], int N)

{

for( int i = 0; i< N-1; i++)

for( int j = N-1; j>I; j )

Trang 11

Tham khảo: Bài 3 – Các thuật toán sắp xếp phần 2, Mục II, Bản Hướng dẫn tự học

Cho dãy sau: 23, 78, 45, 8, 32, 56 Dùng phương pháp sắp xếp chọn trực tiếp (Selection Sort) để sắp xếp tăng dần, sau 2 lần lặp thì kết quả của dãy là thế nào?

Tham khảo: Bài 3 – Các thuật toán sắp xếp phần 2, Mục I, Bản Hướng dẫn tự học

Cho các bước mô tả thuật toán như sau:

Nếu danh sách rỗng:

DQ.Head = new_element;

Trang 12

DQ.Tail = DQ.Head;

Ngược lại (d/s khác rỗng):

new_element -> next = DQ.Head;

DQ.Head -> pre = new_element;

Đáp án đúng là: B Chèn vào đầu danh sách

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự học

Tổ chức của danh sách liên kết kép gồm có mấy thành phần:

Trang 13

Đáp án đúng là: B 3 thành phần

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự học

Thao tác thêm một phần tử vào cây khi so sánh giá trị của phần tử cần thêm vào so với nút đang xétnếu phần tử cần thêm vào lớn hơn thì được thêm vào vị trí nào?

Chọn một câu trả lời:

a Cả hai phát biểu trên đều đúng

b Cả hai phát biểu trên đều sai

c Phần tử mới được bổ sung vào nhánh phải của nút đang xét

d Phần tử mới được bổ sung vào nhánh trái của nút đang xét

Phản hồi

Đáp án đúng là: Phần tử mới được bổ sung vào nhánh trái của nút đang xét

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Cho biết các nút có bậc bằng 2 trong hình ảnh sau:

Chọn một câu trả lời:

Trang 15

Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt NRL thì kết quả thu được thứ tự các phần tử là như thế nào?

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Cho cây NPTK, chọn biểu thức tương ứng với cây:

Trang 16

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VII, bản Text

Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt RNL thì kết quả thu được thứ tự các phần tử là như thế nào?

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Cho dãy số sau: 30, 18, 35, 17, 40, 16, 32, 31, 43, 19 Cho biết kết quả khi duyệt cây được tạo lần lượt từ các phần tử trên bằng phương pháp duyệt LRN (Left Right Node ):

Trang 17

Cho biết kết quả khi duyệt cây sau bằng phương pháp duyệt LRN (Left-Right-Node)?

Trang 18

và CTC insertNode(Tree &T, item x) để chèn thêm phần tử mới vào cây nhị phân tìm kiếm, nếu chènthành công trả lại giá trị 0 nếu không chèn thành công trả lại giá trị -1

Đoạn mã nào sau đây để cho phép nhập liên tiếp các số nguyên đến khi bằng 0 thì dừng và tạo cây nhị phân tìm kiếm từ các số nguyên đã nhập đó

Chọn một câu trả lời:

a int insertNode(Tree &T, int x){ if (T != NULL) { if (T->key == x) return -1; if (T->key > x)

return insertNode(T->Left, x); else if (T->key < x)

return insertNode(T->Right, x); } T = (Node *) malloc(sizeof(Node)); if (T == NULL) return 0; T->key =x; T->Left = T->Right = NULL; return 1;}

b void CreateTree(Tree &T)

c Node* searchKey(Tree T, int x) { if (T!=NULL) { if (T->key == x)

{ Node *P = T; return P;} if (T->key > x)

return searchKey(T->Left, x); if (T->key < x)

return searchKey(T->Right, x); } return NULL;}

d void LNR(Tree T){ if(T!=NULL) { LNR(T->Left); printf("%7d",T->key); LNR(T->Right); }}

Trang 19

Đáp án đúng là: D Tiền tố, trung tố và hậu tố

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VII, bản Text

Cho biết kết quả khi duyệt cây sau bằng phương pháp duyệt NLR (Node-Left-Right)?

Trang 20

a Là số nhánh con trái của nút đó

b Là số nhánh con phải của nút đó

c Là số nhánh con của nút đó

Trang 21

d Là số nhánh con nhỏ nhất của nút con của nút đó

Phản hồi

Đáp án đúng là: C Là số nhánh con của nút đó

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục I, bản Text

Lựa chọn câu đúng nhất về danh sách liên kết đôi

c Vùng liên kết của một phần tử trong danh sách liên kết đôi có 02 mối liên kết với phần tử trước và

sau nó trong danh sách

d Vùng liên kết của một phần tử trong danh sách đôi có 02 mối liên kết với 01 phần tử trong danh

sách

Phản hồi

Đáp án đúng là: C Vùng liên kết của một phần tử trong danh sách liên kết đôi có 02 mối liên kết với phần tử trước và sau nó trong danh sách

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự học

Cho khai báo Stack như sau:

Trang 23

b Chuyển đổi cơ số

c Tất cả các phương án đều sai

d Đảo ngược xâu ký dự

Phản hồi

Đáp án đúng là: C Tất cả các phương án đều sai

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 6 – Ngăn xếp và Hàng đợi, mục II, bản Text

Ứng dụng cơ bản của ngăn xếp gồm

Chọn một câu trả lời:

a Chuyển đổi cơ số

Trang 24

b Đảo ngược xâu ký tự

c Tất cả các phương án đều đúng

d Tính giá trị biểu thức

Phản hồi

Đáp án đúng là: D Tất cả các phương án đều đúng

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 6 – Ngăn xếp và Hàng đợi, mục I, bản Text

Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt LNR thì kết quả thu được thứ tự các phần tử là như thế nào?

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục V, bản Text

Cho biết kết quả khi duyệt cây sau bằng phương pháp duyệt LNR (Left-Node-Right)?

Trang 26

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt RLN thì kết quả thu được thứ tự các phần tử là như thế nào

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Phương pháp duyệt NLR là phương pháp duyệt gì?

Chọn một câu trả lời:

a Left - Right - Node

Trang 27

b Left - Node - Righ

c Cả 3 lựa chọn đều đúng

d Node - Left - Right

Phản hồi

Đáp án đúng là: A Node - Left - Right

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 7 – Cây, mục VI, bản Text

Cho đồ thị vô hướng như hình vẽ Đỉnh nào dưới đây là đỉnh treo của đồ thị:

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 8 – Đồ thị, mục I, bản Text

Trong đồ thị vô hướng, số đỉnh bậc lẻ là một số

Chọn một câu trả lời:

Trang 28

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 8 – Đồ thị, mục I, bản Text

Tổng các phần tử hàng i, cột j của ma trận kề đồ thị có hướng G =<V,E> đúng bằng:

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 8 – Đồ thị, mục I, bản Text

Ta gọi đỉnh v là đỉnh treo trong đồ thị vô hướng G = <V, E>

Chọn một câu trả lời:

a Nếu bậc của đỉnh v là một số chẵn

Trang 29

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 8 – Đồ thị, mục I, bản Text

Hãy cho biết đồ thị nào đưới đây là một cây

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 8 – Đồ thị, mục IV.2, bản Text

Đoạn mã để tạo ra nút mới có thành phần là x trong danh sách liên kết đôi với mỗi nút gồm các thành phần (infor, next, pre) sau:

Trang 30

Node* get_node( Data x ){

Trang 31

Đoạn lệnh được đưa vào (1) là?

Chọn một câu trả lời:

a DQ.Head -> pre = NULL;

DQ.Head -> next= NULL;

b DQ.Head -> pre = NULL;

c Các đáp án đều sai

d DQ.Head -> next = NULL;

Phản hồi

Đáp án đúng là: C DQ.Head -> pre = NULL;

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự họcCho đoạn chương trình như sau:

void AddAfter(DLIST &DQ, DNode *q, DNode *new_element){

Trang 32

c new_element = p -> pre;

d p -> next = new_element;

Phản hồi

Đáp án đúng là: D p -> pre = new_element;

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự học

Định nghĩa cấu trúc dữ liệu của danh sách liên kết đôi được mô tả như sau:struct Node

{

int Key;

struct Node *next;

struct Node *pre;

};

Trong đó, khai báo Node *next dùng để mô tả

Chọn một câu trả lời:

a Con trỏ trở tới phần dữ liệu

b Con trỏ trở tới phần dữ liệu cuối của danh sách

c Vùng liên kết quản lý địa chỉ phần tử kế tiếp

d Vùng liên kết quản lý địa chỉ phần tử kế tiếp của phần tử cuối

Phản hồi

Đáp án đúng là: B Vùng liên kết quản lý địa chỉ phần tử kế tiếp

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự học

Các hàm để giải phóng bộ nhớ là

Chọn một câu trả lời:

a calloc(), delete(), new(), free()

b malloc(), delete(), new(), free()

c delete(),free()

d malloc(), delete(), free()

Trang 33

Phản hồi

Đáp án đúng là: B delete(),free()

Tham khảo: Bài 5 – Danh sách liên kết đôi, Hướng dẫn tự học

Cho khai báo Stack như sau:

Trang 34

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 6 – Ngăn xếp và Hàng đợi, mục II, bản TextCác thao tác được định nghĩa cho hàng đợi một cách tổng quát

struct List{ Node *head, *tail;};

Đoạn mã sau đây thực hiện yêu cầu gì?

Node *TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next)

if(strcmp(p->info.hoten,k)==0) break; return p;}

Chọn một câu trả lời:

a Thực hiện tìm kiếm trong DSLK đơn chứa các CanBo xem có CanBo nào có mã là k hay không?

Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL

Trang 35

b Thực hiện tìm kiếm trong DSLK đôi có chứa Cán bộ với tên là k nào đó hay không?

c Thực hiện tìm kiếm Cán bộ theo tên cán bộ

d Thực hiện tìm kiếm trong DSLK kép chứa các CanBo xem có CanBo nào có tên là k hay không?

Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL

Phản hồi

Đáp án đúng là: Thực hiện tìm kiếm trong DSLK kép chứa các CanBo xem có CanBo nào có tên là khay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL

Cho đoạn mã sau:

struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next,

*pre;};

struct List{ Node *head, *tail;};

Khai báo CTDL trên là khai báo CTDL dạng gì?

Chọn một câu trả lời:

a Danh sách liên kết đôi

b Danh sách liên kết đơn

c Danh sách liên kết vòng

d Danh sách liên kết vòng đôi

Phản hồi

Đáp án đúng là: Danh sách liên kết đôi

Cho Danh sách liên kết đôi chứa danh sách Cán Bộ (CB), Đoạn mã sau đây thực hiện gì?

void InDSCanBo (DList Q)

Trang 36

Chọn một câu trả lời:

a In đầy đủ thông tin tất cả các cán bộ đang chứa trong danh sách Q

b In danh sách tên các cán bộ đang có trong danh sách Q lần lượt từ cuối danh sách về đầu danh

Trang 37

Duyệt lần lượt và bổ sung vào stack các giá trị từ 1 đến 5

Lấy lần lượt các phần tử khỏi Stack và in ra

Cho các phần tử 5, 10, 3, 42 lần lượt được bổ sung vào hàng đợi (Queue) Phần tử nào được lấy rađầu tiên

Trang 38

Khởi tạo hàng đợi

Đẩy chữ Green vào stack

Đẩy chữ Red vào Stack

Đẩy chữ Yello vào stack

Lấy phần tử đầu tiên và hủy khỏi Queue

Lấy phần tử đầu tiên tiếp và hủy khỏi Queue

Cho biết kết quả sau khi thực hiện đoạn chương trình sau:

Trang 39

Tham khảo: Tham khảo Tài liệu hướng dẫn học Bài 1 – Đánh giá thuật toán

Cho biết đây là ý tưởng của thuật toán nào:

Xuất phát từ dãy đầu a0, a1, …, ai, xét các phần tử sau đó từ ai+1 đến an xem có phần tử nào nhỏ hơn ai không thì hoán đổi vị trí => Sau mỗi lần luôn được dãy a0, a1, …, ai đã được sắp thứ tựChọn một câu trả lời:

a.Ý tưởng của thuật toán sắp xếp InsertionSort

b Ý tưởng của thuật toán sắp xếp InterchangeSort

c Ý tưởng của thuật toán tìm kiếm tuyến tính

d Ý tưởng của thuật toán tìm kiếm nhị phân

Phản hồi

Đáp án đúng là: A Ý tưởng của thuật toán sắp xếp InterchangeSort

Tham khảo: Bài 2 – Tìm kiếm và sắp xếp – Mục II.2, Bản Hướng dẫn tự học

Đoạn mã dưới đây mô tả thuật toán gì: B1: k = 1 B2: if M[k] == X and k !=n

B2.1: k++

B2.2: Lặp lại bước 2

B3: if (k<N) thông báo tìm thấy tại vị trí thứ k

B4: else thông báo không tìm thấy

B5: Kết thúc

Chọn một câu trả lời:

Trang 40

a Tìm kiếm nhị phân phần tử có giá trị X

b Tìm phần tử nhỏ nhất của mảng M gồm N phần tử

c Tất cả các lựa chọn trên đều sai

d Tìm kiếm tuyến tính phần tử X trong mảng

Phản hồi

ĐĐáp án đúng là: B Tìm kiếm tuyến tính phần tử X trong mảng

Tham khảo: Bài 2 – Tìm kiếm và sắp xếp – Mục I.2, Bản Hướng dẫn tự học

Các bước thực hiện tìm kiếm nhị phân phần tử x trên dẫy sắp xếp tăng dần được mô tả như sau:Bước 1: Khởi đầu tìm kiếm trên tất cả các phần tử của dãy <=> left = 0 và right = n-1

Bước 2: Tính middle = (left + right)/2 So sánh a[middle] với x Có 3 khả năng:

- a[middle] = x => Tìm thấy => Dừng

- a[middle] > x => tiếp tục tìm x trong dãy con mới với right = middle - 1 (tìm trong nửa đầu)

- a[middle] < x => tiếp tục tìm x trong dãy con mới với (tìm trong nửa cuối)Bước 3:

- Nếu left <= right => dãy còn phần tử, tiếp tục quay lại bước 2 để tìm kiếm tiếp

- Ngược lại => Dãy hiện hành hết phần tử và dừng thuật toán

Giá trị cần điền vào dấu ………… là bao nhiêu để thuật toán thực hiện đúng

Ngày đăng: 02/11/2022, 13:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w