1. Trang chủ
  2. » Cao đẳng - Đại học

Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 2: Mảng và danh sách - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

7 14 2

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

[r]

(1)

CHƯƠNG 2

MẢNG VÀ DANH SÁCH

1 Mảng

2 Danh sách

Ngô Công Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 02 3.1

1 Mảng

l Mảng tập hợp có thứ tự gồm số cố

định phần tử kiểu

l Một phần tử mảng số, thể thứ tự phần tử mảng

l Các phần tử mảng tổ chức thành mảng chiều, chiều, chiều…

(2)

1 Mảng

l Mảng dùng cấu trúc lưu trữ kế tiếp,

để cho phép truy nhập trực tiếp phần tử

l Dùng vec tơ lưu trữ V có n nhớ liên tiếp với số từ đến n để lưu trữ phần tử liệu mảng

l Với mảng chiều, phần tử ai lưu trữ ô nhớ V[i]

l Với mảng chiều, phần tử lưu trữ lần lượt, hết hàng đến hàng 2… Phần tử aij

được lưu trữ ô nhớ V[k], k = (i-1)*n + j

1 Mảng

l Mảng chiều có m = hàng, n = cột Tính số k truy nhập vào ô nhớ chứa phần tử aij

7 10

4 10 => k = (i-1)*n + j

l Có phép tạo lập mảng, tìm kiếm phần tử từ mảng, truy nhập phần tử mảng

(3)

2 Danh sách

2.1 Khái niệm

l Danh sách tập hợp có thứ tự gồm số biến động phần tử kiểu

l Phép loại bỏ, bổ sung phần tử phép thường xuyên tác động lên danh sách

l Ví dụ: Tập hợp người đến khám bệnh cho ta danh sách Người đến xếp hàng khám bổ sung phía sau, người khám khỏi hàng ( loại bỏ ) phía trước

2.1 Khái niệm

l Danh sách tuyến tính: Một danh sách mà quan hệ lận

cận phần tử xác định rõ ràng gọi

là danh sách tuyến tính Véc tơ danh sách tuyến

tính

l Danh sách tuyến tính rỗng (khơng có phần tử nào)

hoặc có dạng (a1, a2, , an) với , ≤ i ≤ n

phần tử

l Trong danh sách tuyến tính tồn phần tử đầu a1,

phần tử cuối an, phần tử thứ i Với ≤ i

≤ n ai+1 gọi phần tử sau ; ≤ i ≤ n phần tử

(4)

2.1 Khái niệm

l n độ dài (kích thước) danh sách, n thay đổi

l Một phần tử danh sách thường ghi (gồm nhiều trường)

l Ví dụ 1: Danh mục điện thoại danh sách tuyến tính, phần tử thuê bao gồm trường: Họ tên chủ hộ, địa chỉ, số điện thoại

l Ví dụ 2: Tệp(File) danh sách có kích thước lớn lưu trữ nhớ ngồi

2.2 Các phép tốn danh sách

l Phép bổ sung: Có thể bổ sung phần tử vào danh sách

l Phép loại bỏ: loại bỏ phàn tử khỏi danh sách

l Phép ghép: ghép hai hay nhiều danh sách thành danh sách

l Phép tách: tách danh sách thành nhiều danh sách

(5)

2.2 Các phép tốn danh sách

l Phép chép: chép danh sách

l Phép xếp: Có thể xếp phần tử danh sách theo thứ tự định

l Phép tìm kiếm: Tìm kiếm danh sách phần tử mà trường có giá trị ấn định Ví dụ 1: Minh hoạ cho phép tốn danh sách cài đặt mảng Cho danh sách số nguyên, thêm vào số nguyên loại bỏ số nguyên

2.3 Lưu trữ kế tiếp cho danh sách tuyến tính

l Dùng mảng chiều làm cấu trúc lưu trữ danh sách tuyến tính Tức dùng vector lưu trữ (Vi) với 1≤ i ≤ m để lưu trữ danh sách tuyến tính (a1,a2, ,an) Phần tử chứa Vi

a1 a2 an

(6)

2.3 Lưu trữ kế tiếp cho danh sách tuyến tính

l Do số phần tử danh sách tuyến tính ln biến động, tức kích thước n ln thay đổi, m = max(n)

l Mặt khác, n xác định xác mà dự đốn Bởi vậy, max(n) lớn lãng phí nhớ lãng phí thời gian để thực thao tác để dồn phần tử xuống ta thêm phần tử vào danh sách tuyến tính

Ngơ Cơng Thắng Bài giảng Cấu trúc liệu giải thuật - Chương 03 3.11

3 Cấu trúc ngăn xếp (Stack)

3.1 Định nghĩa

l Ngăn xếp kiểu danh sách tuyến tính đặc biệt mà phép bổ sung phép loại bỏ luôn thực đầu gọi đỉnh (Top)

l Phép bổ sung loại bỏ phần tử ngăn xếp

được thực theo nguyên tắc "Vào sau trước" (Last in - First out, viết tắt LIFO)

(7)

3.2 Lưu trữ kế tiếp

l Dùng vector lưu trữ S có n nhớ với số từ đến n để lưu trữ phần tử liệu

l Dùng biến T để lưu trữ số phần tử đỉnh ngăn xếp, T thay đổi ngăn xếp hoạt động Khi bổ sung phần tử T tăng lên Khi

phần tử bị loại khỏi ngăn xếp T giảm

l Khi ngăn xếp rỗng T=0

3.3 Các phép toán ngăn xếp

l Bổ sung một phần tử vào stack - Vào: phần tử x, ngăn xếp (S,T) - Ra: khơng có

Ngày đăng: 01/04/2021, 15:53

Xem thêm:

TỪ KHÓA LIÊN QUAN

w