1. Trang chủ
  2. » Giáo Dục - Đào Tạo

slide tài liệu danh sách móc nối

18 510 0

Đ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 18
Dung lượng 764,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mô hình đoàn tàu hỏa- Mỗi toa tàu tương ứng với một ô nhớ trong mảng.. Một số khái niệm - Danh sách là một tập có thứ tự bao gồm một số biến động các phần tử.. - Mỗi toa tàu tương ứng vớ

Trang 1

01/25/15 Ngô Duy Nam 1

Câu hỏi 1:

Nêu khái niệm cấu trúc dữ liệu dạng mảng

KIỂM TRA BÀI CŨ

Câu hỏi 2:

Mảng có phép bổ sung, loại bỏ phần tử không? Tại sao?

Trang 2

Mô hình đoàn tàu hỏa

- Mỗi toa tàu tương ứng với một ô nhớ trong mảng.

- Số toa tàu là cố định

h.khách h.khách h.khách h.khách h.khách h.khách

Trang 3

01/25/15 Ngô Duy Nam 3

Chương 5: Danh sách móc nối

I Một số khái niệm

- Danh sách là một tập có thứ tự bao gồm một số biến động các phần tử

- Mỗi toa tàu tương ứng với một ô nhớ trong danh sách.

- Số toa tàu là biến động

h.khách h.khách h.khách h.khách h.khách h.khách

Trang 4

- Phần tử đầu tiên trong danh sách được quản lý bởi một con trỏ (thường được kí hiệu bởi

L,P,Q,M, )

- Danh sách rỗng là danh sách không chứa phần

tử nào

Trang 5

01/25/15 Ngô Duy Nam 5

- Mỗi phần tử trong danh sách thường là một bản ghi gồm một hoặc nhiều trường

Trang 6

II Các dạng danh sách móc nối

1 Danh sách móc nối đơn

1.1 Định nghĩa phần tử trong danh sách

- Mỗi phần tử trong danh sách được thể hiện bởi nút có dạng sau:

- Trong đó:

+ Data: Chứa thông tin

+ Link: Chứa địa chỉ của nút tiếp theo nếu có, không có chứa địa chỉ rỗng (ký hiệu Null)

Data Link

Trang 7

01/25/15 Ngô Duy Nam 7

h.khách h.khách h.khách h.khách h.khách h.khách

Link Data

Trang 8

Ví dụ 1:

Type

DS=^nut;

Nut= record

Data: Data Type;

Link: DS;

End;

Var

L:DS;

Data Link L

Trang 9

01/25/15 Ngô Duy Nam 9

1.2 Truy cập vào từng trường ở mỗi nút trong danh sách

Cú pháp:

<tên con trỏ>^.<tên trường>

Ví dụ: Cho một danh sách sau:

5

L

M

L^.Data ->?

L^.Link ->?

Trang 10

1.3 Các phép toán

Trang 11

01/25/15 Ngô Duy Nam 11

MÔ HÌNH CÂY NHỊ PHÂN

46

36

66

X=37

Cây nhị phân tìm kiếm

<

><

Mô hình CNF có phải

là CNF tìm kiếm?

Trang 12

MÔ HÌNH CÂY NHỊ PHÂN TÌM KIẾM

46

36

66

46

36

66

37

Trang 13

01/25/15 Ngô Duy Nam 13

MÔ HÌNH CÂY NHỊ PHÂN TÌM KIẾM

46

36

66

46

36

66

Trang 14

Ý tưởng

Bước 1: Sắp xếp dãy số đó theo trình tự tăng dần.

Bước 2: Tìm vị trí phần tử giữa của mảng.

Sử dụng các phương pháp sắp xếp như: Chọn, chèn,…

l:=1;r:=n; ĐK: (l<r)

m:=|(l+r)/2|

Cách xác định vị trí pt giữa của mảng k

m:=|(l+r)/2|

Trang 15

01/25/15 Ngô Duy Nam 15

Ý tưởng

- So sánh X với k[m]

Nếu X<k[m] hoặc X>k[m] thì quay lại từ Bước 2

+ Tìm pt giữa của dãy

Bước 3: Với giá trị phần tử giữa của mảng đem so sánh với X Nếu bằng thì kết thúc, còn sang bước 4

Bước 4: Lặp lại Bước 2 và Bước 3 cho đến khi tìm được X hoặc không tìm được X

46

36

Mảng K:

l:=

46

36

Mảng K:

m:=|(l+r)/2|

m:=|(l+r)/2|

m:=|(l+r)/2|

X<k[m] X>k[m]

Trang 16

Ý tưởng

Bước 3: Với giá trị phần tử giữa của mảng đem so sánh với X Nếu bằng thì kết thúc, còn sang bước 4

- So sánh X với k[m]

- Nếu X=k[m] thì kết thúc

Bước 4: Lặp lại Bước 2 và Bước 3 cho đến khi tìm được X hoặc không tìm được X

Nếu X>k[m] hoặc X<k[m] thì quay lại từ Bước 2

+ Tìm pt giữa của dãy

Bước 2: Tìm vị trí phần tử giữa của mảng.

l:=1;r:=n; ĐK: (l<r)

Trang 17

01/25/15 Ngô Duy Nam 17

Ví dụ vận dụng

Cho mảng k gồm 5 pt: 7 8 13 17 34

Cho X = 34

Sử dụng thuật toán tìm kiếm nhị phân, kiểm

tra X có tồn tại trong mảng k hay không ? (yêu cầu chạy chậm từng bước theo thuật toán)

Trang 18

Viết chương trình bài tập 3

BÀI THỰC HÀNH 4: SỬ DỤNG CÂU LỆNH ĐIỀU KIỆN IF …THEN

a Lưu chương trình với tên

Bacanhtamgiac.pas

b Chạy chương trình

Xin chân thành cảm ơn quí thầy cơ!

Chúc các em học tập tốt !

Ngày đăng: 25/01/2015, 18:50

TỪ KHÓA LIÊN QUAN

w