Phân tích thời gian chạy của từng phương thức có trong các lớp V.. Mô phỏng hoạt độNng của Queue bằng cách xây dựng chương trình sau: Bạn được cho mộNt hàng đợi rỗng và mộNt số truy
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VÂN TẢIKHOA 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 Xuân TíchNhóm thực hiện: Nhóm… Lớp CNTT6-K61Danh sách sinh viên tham gia:
Hà Nội, tháng 12 năm 2021
Trang 2Nội dung
I Đề bài
2.Các lớp, các thuộc tính, các phương thức của lớp và chức năng của
chúng: 2.1.QueueClassArray2.2.QueueClassLinkedList
III Cài đặt các lớp và hàm main bằng C+
+ 3.1 QueueClassArray
3.2 QueueClassLinkedList3.3 Demo
3.3.1: ClassQueueArray3.3.2: ClassQueueLinkedList3.3.3: Sử dụng queue để code câu 3 của đề bài
IV Phân tích thời gian chạy của từng phương thức có trong các
lớp V Tài liệu tham khảo
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 3I Đề bài
1 Xây dựng lớp Queue bằng 2 cách: Mảng và danh sách liên kết
2 Mô phỏng hoạt độNng của Queue bằng cách xây dựng chương trình sau: Bạn được cho mộNt hàng đợi
rỗng và mộNt số truy vấn với hàng đợi này Các truy vấn là những truy vấn cơ bản của hàng đợi: Đẩy
vào, lấy ra, in ra phần tử ở đỉnh, các⦁ truy vấn có dạng:
⦁ 1 n: Đẩy số nguyên n vào hàng đợi
2 Loại bỏ phần tử ở đầu hàng đợi (nếu hàng đợi rỗng thì thao tác này không⦁có hiệu lực)
3 In ra phần tử ở đỉnh hàng đợi (không lấy ra khỏi hàng đợi, nếu hàng đợi rỗng thì in ra Empty!)
Dữ liệu⦁ vào
⦁ Dòng đầu chứa số nguyên dương TT là số truy vấn;
⦁ TT dòng tiếp theo, mỗi dòng chứa mộNt truy vấn Giới hạn:
7 Empty!
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 43 Cho mộNt dãy gồm N số nguyên: a1, a2, … , an và dãy B rỗng Trên dãy B thực hiện
N phép biến đổi Với phép biến đổi thứ i:
Bạn hãy thực hiện tìm kết quả của dãy B sau N phép biến đổi
Dữ liệu vào:
4213 Input #2:
3
1 2 3 Output #2:
3 1 2 II.Phân tích bài toán
1.Yêu cầu của bài toán:
Sử dụng mảng và danh sách liên kết đơn để khai báo lớp Queue( hàng đợi)
2.Các lớp, các thuộNc tính, các phương thức của lớp và chức năng của chúng:
2.1 QueueClassArray:
- Thuộc tính:
+count(int) : kích thước hiện tại của hàng đợi+capacity(int): kích thước tối đa của hàng đợi( mặc định là 100000)+arr(*int) : mảng động lưu trữ phần tử
+front(int): vị trí của phần tử đầu tiên
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 5+rear(int): vị trí của phần tử cuối cùng
+ Queue(): Phương thức khởi tạo không đối số
+ void enqueue(int x): đẩy x vào cuối Queue Sơ đồ khối
Trang 6+ void dequeue(): Loại bỏ phần tử đầu của queue Sơ đồ khối:
Trang 7+ int size(): trả về kích thước hiện tại của Queue
+ void peek(): trả về phần tử đầu của Queue
Trang 8+ void enQueue(int x): đẩy một giá trị vào cuối danh sách node hiện có
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Sơ đồ khối:
Trang 10+ int peek(): trả về phần tử đầu tiên của Queue
+ void deQueue(): Xóa phần tử đầu tiên của danh sách
Trang 11III.Cài đặt các lớp và hàm main bằng C++
3.1 Code QueueClassArray:
Trang 143.2 Code QueueClassLinkedList
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 16cin >> x;
q.enqueue(x);
} else if (type == 2) {
if (!q.isEmpty()) {
q.dequeue();
} } else
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 17if (q.isEmpty()) {
cout << "Empty!" << endl;
} else cout << q.peek() << endl;
} } } int main() {
Trang 18{cin >> x;
q.enQueue(x);
}else if (type == 2){
if (!q.isEmpty()){
q.deQueue();
}}else{
if (q.isEmpty()){
cout << "Empty!" << endl;
}else{cout << q.peek() << endl;
}}}
}
int main()
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat
Trang 20IV Phân tích thời gian chạy của từng phương thức có trong các
lớp 4.1 ClassQueueArray:
4.2 ClassQueueLinkedList:
V Tài liệu tham khảo
- Bài làm có tham khảo bài giảng của giảng viên ThS Phạm Xuân Tích và các trang web gitbub.com, stackoverflow.com, codelearn.io
TIEU LUAN MOI download : skknchat123@gmail.com moi nhat