BÀI TẬP CẤU TRÚC DỮ LIỆU (STACK VÀ DSLK)
Bài 1: Cài đặt STACK chứa số nguyên bằng mảng bao gồm các tác vụ cơ bản: init, empty, full, push, pop (xem lại bài học)
Áp dụng STACK trên, viết chương trình đổi số thập phân sang hệ nhị phân
Áp dụng STACK trên, viết chương trình đổi số thập phân sang hệ thập lục phân
Bài 2: Cài đặt STACK chứa ký tự bằng mảng bao gồm các tác vụ cơ bản: init, empty, full, push, pop
Áp dụng STACK trên, viết chương trình in ngược chuỗi đã nhập.
Áp dụng STACK trên, viết chương trình kiểm tra chuỗi nhập vào có phải chuỗi đối xứng hay không ?
Bài 3: Hãy cài đặt 1 stack mới theo mô tả dưới đây:
- Stack được cài đặt bằng mảng một chiều (khai báo int s[MAXSTACK], MAXSTACK là hằng số)
- s[0] được dành riêng để giá trị của đỉnh stack. Từ s[1] ... s[MAXSTACK] dùng để chứa các nút của stack
- Các tác vụ cơ bản: init, pop, push, empty, full
Bài 4: Cài đặt DSLK chứa số nguyên với các tác vụ cơ bản:
- init: khởi động con trỏ đầu của DSLK
- insert_F: chèn nút mới vào đầu DSLK
- insert_L: chèn nút mới vào cuối DSLK
- insert: chèn nút mới vào vị trí bất kỳ trong DSLK
- xoa_nut: xóa 1 nút bất kỳ trong DSLK.
- traverse: duyệt qua các nút và in ra thông tin các nút trong DSLK
Áp dụng các tác vụ trên viết chương trình tạo ra 1 DSLK gồm 10 nút chứa 10 số nguyên bất kỳ và cho biết thêm các thông tin sau:
- Tổng giá trị của các nút trong DSLK
- In ra màn hình giá trị các nút chẵn trong DSLK
Bài 5: Viết giải thuật xóa nút cuối trong DSLK
Bài 6: Viết giải thuật cắt 1 DSLK thành 2 DSLK ( một DSLK chứa số chẵn, một DSLK chứa số lẻ)
Bài 7: Viết giải thuật đếm có bao nhiêu nút trong DSLK có giá trị nhỏ hơn x.
Bài 8: Giả sử có một DSLK đã có thứ tự. Viết giải thuật chèn 1 nút mới có nội dung là x vào DSLK trên sao cho ta có được một DSLK mới vẫn có thứ tự
Bài 9: Viết giải thuật dời nút p i vị trí trong DSLK
Bài 10: Viết giải thuật xóa nút có nội dung là x trong DSLK