1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập lớn đề tài quản lý các số nguyên dùng dslk đôi

14 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 14
Dung lượng 4,59 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG ÁBÀI TẬP LỚNHỌC PHẦN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬTĐỀ TÀI: QUẢN LÝ CÁC SỐ NGUYÊN DÙNG DSLK ĐÔISinh viên thực hiệnKhóaLớpMã sinh viên.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

BÀI TẬP LỚN HỌC PHẦN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

ĐỀ TÀI: QUẢN LÝ CÁC SỐ NGUYÊN DÙNG DSLK ĐÔI

Sinh viên thực hiện Khóa Lớp Mã sinh viên Đặng Hoàng Ngọc

Hải

K11 CNTT 2 20200508 Trần Thọ Hoàng K11 CNTT 2 20200698

Trần Đức Hoạt K11 CNTT 2 20200927

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

BÀI TẬP LỚN HỌC PHẦN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

Nhóm: 08

ĐỀ TÀI: QUẢN LÝ CÁC SỐ NGUYÊN DÙNG DSLK ĐÔI

ST

T

Sinh viên

thực hiện

Khóa Lớp Mã sinh

viên

Điểm bằng số

Điểm bằng chữ

Ký tên SV

1 Đặng Hoàng

Ngọc Hải

K11 CNTT 2

20200508 Hải

2 Trần Thọ

Hoàng

K11 CNTT 2

20200698 Hoàng

3 Trần Đức

Hoạt

K11 CNTT 2

20200927 Hoạt

CÁN BỘ CHẤM 1

(Ký và ghi rõ họ tên)

CÁN BỘ CHẤM 2

(Ký và ghi rõ họ tên)

Bắc Ninh, tháng 01 năm 2022

Trang 3

MỤC LỤC:

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

II Cấu trúc dữ liệu của danh sách liên kết đôi 5

- Cấu trúc của một Node 4

- Cấu trúc danh sách liên kết đôi 6

III Các thao tác trong danh sách liên kết đôi 6

IV Bài toán 8

Trang 4

DANH MỤC BẢNG BIỂU, HÌNH VẼ:

Hình 1.1 Ví dụ về danh sách liên kết đôi 5

Hình 2.1 Cấu trúc của một node 5

Hình 2.2 Xây dựng danh sách liên kết kép 6

Hình 2.3 Cấu trúc danh sách liên kết đôi 6

Hình 3.1 Chèn vào đầu List 7

Hình 3.2 Chèn vào cuối List 8

Hình 3.3 Xuất thông tin ra màn hình 8

Hình 4.1 Sơ đồ nhập vào chuỗi a 9

Hình 4.2 Nhập số a 9

Hình 4.3 Khởi tạo 10

Hình 4.4 Kết quả câu 1 11

Hình 4.5 Sơ đồ câu 2 12

Hình 4.6 Nhập vào số đếm k, số đó là chẵn hay lẻ 12

Hình 4.7 Kết quả câu 2 13

Hình 4.8 Sơ đồ câu 3 13

Hình 4.9 Tính trung bình cộng các số lẻ dương 14

Hình 4.10 Kết quả câu 3 14

Hình 4.11 Tạo Menu 15

Hình 4.12 Tạo Menu 15

Trang 5

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

- Danh sách liên kết đôi (Doubly linked list) là danh sách liên kết mà mỗi phần tử

có hai liên kết đến phần tử liền trước và liền sau nó

- Khi duyệt các nút sẽ thực hiện theo hai chiều về trước và về sau thay vì thực hiền duyệt một chiều như danh sách liên kết đơn

Hình 1.1 Ví dụ về danh sách liên kết đôi

II Cấu trúc dữ liệu của danh sách liên kết đôi

- Cấu trúc của một Node:

Mô Ut node trong danh sách liên kết kép đươꄣc cấu thành tư뀀 ba thành phần là dư뀃 liê Uu và phần kết nối tới node kế tiếp và node trước nó

Hình 2.1 Cấu trúc của một node Trong đó:

o Data: Là giá trị của Node

o Prev: Là con trỏ tới node trước

o Next: Là con trỏ tới node kế tiếp

Xây dựng danh sách liên kết kép bởi liên kết các node với nhau

Trang 6

Hình 2.2 Xây dựng danh sách liên kết kép

- Cấu trúc danh sách liên kết đôi:

Hình 2.3 Cấu trúc danh sách liên kết đôi

Ta có:

o pHead là Node đầu tiên trong DSLK đôi, nó luôn luôn quản lý Node đầu

o pTail là Node cuối cùng trong DSLK đôi, nó luôn luôn quản lý Node cuối

o Node B có hai con trỏ, trỏ đến A và C, tương tự các Node khác cũng vậy

III Các thao tác trong danh sách liên kết đôi

Trong danh sách liên kết đôi cũng có các thao tác tương tự như danh sách liên kết đơn, các thao tác này đươꄣc sử dụng rất nhiều khi làm việc với DSLK

Tạo Node mới trong DSLK đôi

Chèn Node trong DSLK đôi

Xóa Node trong DSLK đôi

Duyệt DSLK đôi

Tìm kiếm và sắp xếp trong DSLK đôi

Chèn Node trong danh sách liên kết đôi có hai trường hơꄣp là: chèn vào đầu, chèn vào cuối

Xóa Node trong danh sách liên kết đôi cũng có hai trường hơꄣp là: xóa

ở đầu và xóa ở cuối

Việc chèn dư뀃 liệu vào đầu trong danh sách liên kết kép:

Trang 7

Hình 3.1 Chèn vào đầu List

• Nếu head = NULL, ta sẽ cho cả head và tail = newNode

• Nếu head != NULL, ta sẽ cập nhật lại head mới là newNode Ta cần tạo liên kết giư뀃a head hiện tại với newNode trước khi cho newNode làm head mới Việc chèn dư뀃 liệu vào cuối trong danh sách liên kết kép:

Hình 3.2 Chèn vào cuối List

• Nếu head = NULL, newNode sẽ là head và tail luôn

• Nếu head != NULL, cập nhật lại tail mới là newNode Ta cần tạo liên kết thằng tail hiện tại với newNode trước khi để newNode làm tail mới Duyệt danh sách liên kết:

Hình 3.3 Xuất thông tin ra màn hình

Trang 8

• Ta sẽ duyệt bắt đầu tư뀀 Node head cho tới trước khi gặp Node NULL bằng cách dùng con trỏ next

IV Bài toán

Cho một danh sách lưu trư뀃 các số nguyên Viết chương trình tạo menu thực hiện các chức năng 1,2,3

1 Khởi tạo danh sách, quá trình nhập sẽ dư뀀ng lại khi nhấn #

2 Nhập vào một số k, đếm các số = k, thông báo số lươꄣng số đếm đươꄣc là chẵn hay lẻ?

3 Tính trung bình cộng các số dương trong danh sách

- Yêu cầu 1:

Sơ đồ:

Hình 4.1 Sơ đồ nhập vào chuỗi a Code:

Hình 4.2 Nhập số a

Trang 9

Hình 4.3 Khởi tạo Kết quả:

Trang 10

Hình 4.4 Kết quả câu 1

- Yêu cầu 2:

Sơ đồ:

Trang 11

Hình 4.5 Sơ đồ câu 2 Code:

Hình 4.6 Nhập vào số đếm k, số đó là chẵn hay lẻ Kết quả:

Trang 12

Hình 4.7 Kết quả câu 2

- Yêu cầu 3:

Sơ đồ:

Hình 4.8 Sơ đồ câu 3 Code:

Trang 13

Hình 4.9 Tính trung bình cộng các số lẻ dương Kết quả:

Hình 4.10 Kết quả câu 3

- Tạo Menu:

Trang 14

Hình 4.11 Tạo Menu

Hình 4.12 Tạo Menu

Ngày đăng: 04/05/2024, 14:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w