Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
424,08 KB
Nội dung
TRƯỜNG ĐẠI HỌC GIAO THÔNG VÂN TẢI KHOA CÔNG NGHỆ THÔNG TIN -o0o - Bài tập lớn môn học CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Giảng viên hướng dẫn: ThS.Phạm Xn Tích Nhóm thực hiện: Nhóm… Lớp CNTT6-K61 Danh sách sinh viên tham gia: STT Mã sinh viên 201210402 Họ tên Đào Đức Tùng Hà Nội, tháng 12 năm 2021 Nội dung I Đề II Phân tích tốn 1.u cầu tốn 2.Các lớp, thuộc tính, phương thức lớp chức chúng: 2.1.QueueClassArray 2.2.QueueClassLinkedList III Cài đặt lớp hàm main C++ 3.1 QueueClassArray 3.2 QueueClassLinkedList 3.3 Demo 3.3.1: ClassQueueArray 3.3.2: ClassQueueLinkedList 3.3.3: Sử dụng queue để code câu đề IV Phân tích thời gian chạy phương thức có lớp V Tài liệu tham khảo I Đề Xây dựng lớp Queue cách: Mảng danh sách liên kết Mô hoạt động Queue cách xây dựng chương trình sau: Bạn cho hàng đợi rỗng số truy vấn với hàng đợi Các truy vấn truy vấn hàng đợi: Đẩy vào, lấy ra, in phần tử đỉnh, truy vấn có dạng: ⦁ n: Đẩy số nguyên n vào hàng đợi ⦁ Loại bỏ phần tử đầu hàng đợi (nếu hàng đợi rỗng thao tác khơng có hiệu lực) ⦁ In phần tử đỉnh hàng đợi (không lấy khỏi hàng đợi, hàng đợi rỗng in Empty!) Dữ liệu vào ⦁ Dòng đầu chứa số nguyên dương TT số truy vấn; ⦁ TT dòng tiếp theo, dòng chứa truy vấn Giới hạn: ⦁ Tn Dữ liệu ⦁ Ứng với truy vấn loại 3, in kết tương ứng dịng Ví dụ: Input #1 : 15 17 16 2 Output #1: Empty! Cho dãy gồm N số nguyên: a1, a2, … , an dãy B rỗng Trên dãy B thực N phép biến đổi Với phép biến đổi thứ i: - Thêm vào cuối dãy B - Đảo ngược thứ tự phần tử dãy B Bạn thực tìm kết dãy B sau N phép biến đổi Dữ liệu vào: - Dòng chưa số nguyên dương N - Dòng N số nguyên dương a1, a2, … , an Giới hạn: - n; for (int i = 0; i < n; i++) { cin >> type; if (type == 1) { cin >> x; q.enqueue(x); } else if (type == 2) { if (!q.isEmpty()) { q.dequeue(); } } else { if (q.isEmpty()) { cout type; if (type == 1) { cin >> x; q.enQueue(x); } else if (type == 2) { if (!q.isEmpty()) { q.deQueue(); } } else { if (q.isEmpty()) { cout