Tải bản đầy đủ (.pdf) (15 trang)

Slide thuật toán ứng dụng chương 2 cấu trúc dữ liệu và thư viện

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 (143.93 KB, 15 trang )

.c
om

th

an

co

ng

THUẬT TOÁN ỨNG DỤNG

cu

u

du
o

ng

CẤU TRÚC DỮ LIỆU VÀ THƯ VIỆN

Phạm Quang Dũng
Bộ môn KHMT

1

CuuDuongThanCong.com


/>

.c
om

NộI dung
 Danh sách tuyến tính

ng

 Tập hợp

co

 Ánh xạ

an

 Ngăn xếp

ng
du
o
cu

u

 Sắp xếp

th


 Hàng đợi

2

CuuDuongThanCong.com

/>

.c
om

Danh sách tuyến tính
 Lưu trữ các đối tượng theo quan hệ tuyến tính (trước –

cu

u

du
o

ng

th

an

co


ng

sau)
 Thao tác: thêm, xóa, tìm kiếm

3

CuuDuongThanCong.com

/>

List

cu

u

du
o

ng

th

an

co

ng


.c
om

#include <bits/stdc++.h>
using namespace std;
int main(){
list<int> L;
for(int i = 1; i<=5;i++){
L.push_back(i);
}
list<int>::iterator it;
it = find(L.begin(),L.end(),3);
L.insert(it,10);
for(it = L.begin(); it != L.end(); it++){
cout << *it << endl;
}
}

4

CuuDuongThanCong.com

/>

Vector

ng

th


an

co

ng

.c
om

#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> V(3,100); // initialize 3 elements 100
for(int v = 0; v <= 10; v++)
V.push_back(v);

cu

u

du
o

cout << "vector: ";
for(int i = 0; i < V.size(); i++){
cout << V[i] << " ";
}
}
5


CuuDuongThanCong.com

/>

.c
om

Tập hợp
 Lưu các đối tượng, không trùng nhau

cu

u

du
o

ng

th

an

co

ng

 Thao tác: thêm, xóa, tìm kiếm

6


CuuDuongThanCong.com

/>

Tập hợp

cu

u

du
o

ng

th

an

co

ng

.c
om

#include <bits/stdc++.h>
using namespace std;
int main(){

set<int> Y;
for(int i = 1; i <= 10; i++){
Y.insert(i);
}
for(set<int>::iterator it = Y.begin(); it != Y.end(); it++){
cout << *it << endl;
}
if(Y.find(7) != Y.end())
cout << "Y contains 7" << endl;
else
cout << "Y does not contains 7" << endl;
}

7

CuuDuongThanCong.com

/>

.c
om

Ánh xạ
 Cấu trúc dữ liệu cất trữ các cặp (khóa, giá trị)

cu

u

du

o

ng

th

an

co

ng

 Phục vụ tìm kiếm nhanh với khóa đầu vào

8

CuuDuongThanCong.com

/>

Ánh xạ

ng

th

an

co


ng

.c
om

#include <bits/stdc++.h>
using namespace std;
int main(){
map<int,int> m;
for(int i = 1; i <= 5; i++)
m.insert(pair<int,int>(i,10*i));
m[6] = 100;
for(int k = 1; k <= 6; k++) cout << m[k] << endl;

cu

u

du
o

map<string, string> m1;
m1["abc"] = "abcabc";
m1["xyz"] = "xyzxyz";
string s = "abc";
cout << m1[s] << endl;
}
9

CuuDuongThanCong.com


/>

Ánh xạ

ng

th

an

co

ng

.c
om

#include <bits/stdc++.h>
using namespace std;
int main(){
map m2;
m2[pair<int,int>(2,5)] = pair<int,int>(20,50);
m2[pair<int,int>(3,5)] = pair<int,int>(30,50);

cu

u

du

o

int i = 3;
int j = 5;
pair<int,int> p = m2[pair<int,int>(i,j)];
cout << p.first << "," << p.second << endl;
}
10

CuuDuongThanCong.com

/>

.c
om

Ngăn xếp
 Cấu trúc dữ liệu cất trữ các đối tượng một cách tuyến

co

ng

tính
 Thao tác

an

 Thêm 1 phần tử


th

 Lấy ra 1 phần tử

cu

u

du
o

ng

 Nguyên tắc: Vào trước – ra sau

11

CuuDuongThanCong.com

/>

.c
om

Hàng đợi
 Cấu trúc dữ liệu cất trữ các đối tượng một cách tuyến

co

ng


tính
 Thao tác

an

 Thêm 1 phần tử

th

 Lấy ra 1 phần tử

cu

u

du
o

ng

 Nguyên tắc: vào trước – ra trước

12

CuuDuongThanCong.com

/>

cu


u

du
o

ng

th

an

co

ng

#include <bits/stdc++.h>
using namespace std;
int main(){
stack<int> S;
for(int i = 0; i < 5; i++){
S.push(i);
}
while(!S.empty()){
int v = S.top(); S.pop();
cout << v << endl;
}}

.c
om


Stack

13

CuuDuongThanCong.com

/>

cu

u

du
o

ng

th

an

co

ng

#include <bits/stdc++.h>
using namespace std;
int main(){
queue<int> Q;

for(int i = 0; i < 5; i++){
Q.push(i);
}
while(!Q.empty()){
int v = Q.front(); Q.pop();
cout << v << endl;
}
}

.c
om

Queue

14

CuuDuongThanCong.com

/>

Sắp xếp

8.8, 3.3};
decreasing order
a[i] << " ";

cu

u


du
o

ng

th

an

co

ng

.c
om

#include <algorithm>
#include <iostream>
using namespace std;
int main(){
int N = 6;
double a[N] = {1.1, 5.5, 7.7, 2.2,
sort(a+3,a+N,greater<double>());//
for(int i = 0; i < N; i++) cout <<
cout << endl;
sort(a,a+N);
for(int i = 0; i < N; i++) cout <<
}

a[i] << " ";


15

CuuDuongThanCong.com

/>


×