Tải bản đầy đủ (.pptx) (64 trang)

CTDL GT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 64 trang )

CẤU TRÚC DỮ LIỆU

VÀ GIẢI THUẬT

Vũ Song Tùng

1


NỘI DUNG

Giới thiệu chung

Danh sách tuyến tính

Cây

Đồ thị

Sắp xếp

Tìm kiếm

2


I. Giới thiệu chung

Các kỹ thuật lập trình

Ngôn ngữ giả lập trình



Sơ lược về CTDL và giải thuật

3


I. Giới thiệu chung

1.1. Các kỹ thuật lập trình

Lập trình hàm





Chia các giai đoạn của chương trình vào các hàm
Thể hiện những đoạn mã tương tự trong một hàm
Ưu điểm




Dễ quản lý
Tiết kiệm dung lượng chương trình

4


I. Giới thiệu chung


1.1. Các kỹ thuật lập trình

Lập trình hướng đối tượng




Trừu tượng hóa các thành phần của chương trình
Đặc điểm





Tính đóng gói – các thuộc tính của một thành phần và các hàm xử lý các thuộc tính đó được định nghĩa
trong cùng một khối
Tính đa hình – cho phép tạo ra nhiều hình thái của một loại thành phần
Tính kế thừa – cho phép sử dụng lại các định nghĩa đã có của một thành phần để tạo ra một thành phần
mới

5


I. Giới thiệu chung

1.2. Ngôn ngữ giả lập trình
Các quy ước

Các kiểu dữ liệu


ℝ, ℤ, ℕ

Mô tả

Tập các số thực, nguyên và tự nhiên

Kiểu bất kỳ

Mảng chứa � – � + 1 phần tử kiểu T

Dãy

Tập hợp

6


I. Giới thiệu chung

1.2. Ngôn ngữ giả lập trình
Các quy ước
Toán tử

Mô tả
Gán
So sánh
And, Or, Not logic

Làm tròn xuống và lên

Nếu C đúng thực hiện I, C sai thực hiện J
Dãy các phần tử
Tập hợp các phần tử
;

Ngắt các biểu thức

7


I. Giới thiệu chung

1.2. Ngôn ngữ giả lập trình
Biểu thức

Loại

Cú pháp

Khai báo biến
Điều
Điều kiện
kiện

Lặp xác định
Lặp xác định

Lặp không xác định
Lặp không xác định


8


I. Giới thiệu chung

1.2. Ngôn ngữ giả lập trình
Biểu thức

Loại

Cú pháp

Tạo con trỏ

Cấp phát bộ nhớ

Giải phóng bộ nhớ
Lấy
Lấy địa
địa chỉ
chỉ
Lấy
Lấy nội
nội dung
dung trong
trong con
con trỏ
trỏ

Truy

Truy cập
cập thành
thành viên
viên của
của con
con trỏ
trỏ

9


I. Giới thiệu chung

1.2. Ngôn ngữ giả lập trình
Hàm và thủ tục

 

 

10


I. Giới thiệu chung

1.2. Ngôn ngữ giả lập trình
Hướng đối tượng

 


11


I. Giới thiệu chung

1.3. Sơ lược về CTDL và giải thuật
Cấu trúc mảng




Tập hợp các phần tử cùng kiểu




được sắp xếp liên tiếp trong bộ nhớ
được xác định vị trí bằng chỉ số

Thường dùng để lưu trữ các danh sách tuyến tính có kích thước cố định

 

12


I. Giới thiệu chung

1.3. Sơ lược về CTDL và giải thuật
Cấu trúc liên kết





Tập hợp các phần tử (item) lưu trữ dữ liệu (info) và địa chỉ liên kết (link) đến phần tử khác
Dùng để lưu trữ danh sách động hoặc các cấu trúc phi tuyến

 

x

y

x

y



13


I. Giới thiệu chung

1.3. Sơ lược về CTDL và giải thuật
Giải thuật đệ quy

– Giải thuật gọi lại chính nó, gồm 2 thành phần:




Điều kiện dừng đệ quy
Gọi đệ quy

– Áp dụng giải thuật đệ quy khiến cho thuật toán trở nên mạch lạc

14


I. Giới thiệu chung

1.3. Sơ lược về CTDL và giải thuật
Độ phức tạp của thuật toán O(…)




Số lượng trung bình (Tcp) của phép toán phức tạp nhất trong thuật toán
Độ phức tạp của các thuật toán sắp xếp và tìm kiếm trong dãy n phần tử:

Thuật toán

Độ phức tạp

SelectSort

2
O(n )

InsertSort


2
O(n )

BubbleSort

2
O(n )

QuickSort

O(nlog2n)

HeapSort

O(nlog2n)

LinearSearch

O(n)

BinarySearch

O(log2n)

15


II. Danh sách tuyến tính


Ngăn xếp
Hàng đợi
Danh sách liên kết

16


II. Danh sách tuyến tính
2.1. Ngăn xếế
p (Stack)

Dãy các phầầ
n tửửđửợc thếm vào (push) và lầế
y ra (pop) tại cùng một đầầ
u cuử
a dãy

 

17


II. Danh sách tuyến tính
2.1. Ngăn xếế
p (Stack)

Định nghĩa ngăn xếế
p bằng maử
ng


 

18


II. Danh sách tuyến tính
2.2. Hàng đợi (Queue)

Dãy các phầầ
n tửửđửợc thếm vào (enqueue) và lầế
y ra (dequeue) tại hai đầầ
u khác nhau cuử
a dãy

 

19


II. Danh sách tuyến tính
2.2. Hàng đợi (Queue)

Định nghĩa hàng đợi bằng maử
ng

 

20



II. Danh sách tuyến tính
2.3. Danh sách liến kếế
t

Danh sách liến kếế
t 2 chiếầ
u
Dãy các phầầ
n tửửliên kêế
t với phầầ
n tửửphía sau (next) và phía trửớc (prev) trong dãy

 

21


II. Danh sách tuyến tính

2.3. Danh sách liên kết
Mô hình

 



 




Danh sách rỗng

  – phần tử đầu danh sách

– phần tử cuối danh sách

22


II. Danh sách tuyến tính
2.3. Danh sách liến kếế
t

Định nghĩa –
 

 

23


II. Danh sách tuyến tính
2.3. Danh sách liến kếế
t

Định nghĩa –
 

 


24


II. Danh sách tuyến tính
2.3. Danh sách liến kếế
t

Định nghĩa –
 

 

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×