Professional Documents
Culture Documents
Chuong 1 Tong Quan
Chuong 1 Tong Quan
1
15/01/2015
[1]. Trần Văn Thọ, Cấu trúc dữ liệu và giải thuật, Trường
ĐHCNTP TP.HCM, 2012.
[2]. Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật, NXB Khoa học
kỹ thuật, 1996.
[3]. Trần Hạnh Nhi và Dương Anh Đức, Nhập môn cấu trúc dữ
liệu và thuật toán.
[4]. Nguyễn Trung Trực, Cấu trúc dữ liệu. Đại học bách khoa
TP. HCM.
[5]. Nguyễn Hồng Chương, Cấu trúc dữ liệu ứng dụng và đặt
bằng C, Nhà xuất bản Thành phố Hồ Chí Minh, 2003.
[6]. Nguyễn Việt Hương, Ngôn ngữ lập trình C++ và cấu trúc dữ
liệu, Nhà xuất bản Giáo Dục, 2000.
[7]. Tác giả Robert Sedgewick, Cẩm nang thuật toán (bản dịch),
[8]. Tác giả MARK ALLEN WEISS, Data Structures and
Algorithm Analysis, InC. The Benjamin/Cummings
Publishing Company, 1993.
[9]. William J.Collins, Data Structures an object Oriented
Approach, Addison Wesley, 1992.
[10]. Handbook of Algorithms and Data Structures, Informatik,
ETH Zurich, 1999. Gaston H.Gonnet.
[11]. Tác giả N. Width, Datastruct & Algorithm = Programs.
2
15/01/2015
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
3
15/01/2015
Xây dựng hệ thống phần mềm chỉ đường đi tốt nhất cho
người dùng khi muốn di chuyển giữa 2 địa điểm A và B
4
15/01/2015
5
15/01/2015
6
15/01/2015
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
Một bài toán thực tế bất kỳ đều bao gồm dữ liệu và các
yêu cầu xử lý trên dữ liệu đó để xây dựng một mô hình tin
học phản ánh được bài toán thực tế cần chú trọng đến hai vấn
đề:
Tổ chức biểu diễn các đối tượng thực tế.
Xây dựng các thao tác xử lý dữ liệu.
Tổ chức biểu diễn các đối tượng thực tế: Mô hình tin
học của bài toán, cần phải tổ chức sao cho:
• Vừa phản ánh chính xác dữ liệu thực tế.
• Vừa dễ dàng dùng máy tính để xử lý.
7
15/01/2015
Khi có cấu trúc dữ liệu tốt và giải thuật phù hợp thì
xây dựng chương trình chỉ phụ thuộc thời gian.
Một chương trình máy tính chỉ hoàn thiện khi có đầy đủ
cấu trúc dữ liệu và giải thuật.
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
8
15/01/2015
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
9
15/01/2015
Phù hợp với các thao tác trên đó: Tăng tính
hiệu quả của đề án, việc phát triển các thuật toán
đơn giản, tự nhiên hơn => chương trình đạt hiệu
quả cao hơn về tốc độ xử lý.
10
15/01/2015
Là công việc ước lượng thời gian thực hiện của
thuật toán để so sánh tương đối các thuật toán
với nhau.
Trong thực tế, thời gian thực hiện còn phụ thuộc
cấu hình máy, dữ liệu đưa vào, …
Để ước lượng thời gian thực hiện thuật toán xem xét 2
trường hợp:
Với Tmin và Tmax thời gian thực hiện trung bình của
thuật toán Tavg
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
11
15/01/2015
V: Tập các giá trị hợp lệ mà một đối tượng kiểu T
có thể lưu trữ.
O: Tập các thao tác xử lý có thể thi hành trên đối
tượng kiểu T.
ThS. Trần Văn Thọ 36
12
15/01/2015
Vc={a-z,A-Z}
13
15/01/2015
14
15/01/2015
Kiểu dữ liệu con trỏ: Cho trước kiểu T = <V, O>. Kiểu
con trỏ ký hiệu Tp chỉ đến các phần tử có kiểu T được
định nghĩa như sau: Tp = <Vp, Op> , Trong đó:
- Tp = {{các địa chỉ có thể lưu trữ những đối tượng kiểu T},
NULL}
- Op = {các thao tác định địa chỉ của một đối tượng kiểu T khi biết
con trỏ chỉ đến đối tượng đó}
Kiểu con trỏ là kiểu dữ liệu cơ sở dùng lưu địa chỉ của
một đối tượng dữ liệu khác.
Biến thuộc kiểu con trỏ Tp là biến mà giá trị của nó là địa
chỉ của một vùng nhớ ứng với một biến kiểu T, hoặc là
giá trị NULL
Kích thước biến con trỏ tùy thuộc vào quy ước số byte
trong từng mô hình bộ nhớ và từng ngôn ngữ lập trình cụ
thể.
Biến con trỏ trong C++ có kích thước 2 hoặc 4 bytes tùy
vào con trỏ NEAR hay FAR
15
15/01/2015
Khi một biến con trỏ p lưu trữ địa chỉ của đối tượng x ta
nói “p trỏ đến x”
p = <địa chỉ>;
p = <địa chỉ> + <giá trị nguyên>
Truy xuất (xem) nội dung của đối tượng p trỏ đến (*p)
ThS. Trần Văn Thọ 46
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
16
15/01/2015
3. Tính dừng.
Một thuật toán được gọi là tốt khi nói đến tính
hiệu quả của nó. Người ta thường quan tâm đến chi
phí cần dùng để thực hiện thuật toán. Chi phí này
thể hiện qua việc sử dụng tài nguyên như bộ nhớ,
thời gian sử dụng CPU,….
17
15/01/2015
t c*g(n)
Running Time f(n)
0 n
a
Biểu đồ thể hiện 2 hàm f và hàm g.
18
15/01/2015
Ví dụ:
1. 1000001<=c*1000000 ,với cR do đó ta chọn
được 1 giá trị cho c=2 sao cho biểu thức trên đúng.
2. log(n)
3. n
4. nlog(n)
5. n2
6. 2n
19
15/01/2015
(1 1) 1 2n 1
i 0
1.2. Tầm quan trọng của cấu trúc dữ liệu trong tin học
20
15/01/2015
21