1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo Đồ án giữa kì môn lý thuyết Đồ thị

11 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Báo Cáo Đồ Án Giữa Kỳ Môn Lý Thuyết Đồ Thị
Tác giả Trần Phạm Thành Minh, Nguyễn Hoàng Nam, Trương Văn Quốc, Phong Bùi Đức Anh
Trường học Trường Đại Học Tài Nguyên Và Môi Trường Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Hệ Thống Thông Tin
Thể loại báo cáo
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 1,6 MB

Nội dung

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MỖI TRƯỜNG THÀNH PHÓ HỎ CHÍ MINH... Nhập vào đỉnh xuất phát X, in ra đanh sách các đỉnh theo thứ tự được duyệt theo chiều rộng từ X.. .BFS: Breadth First Se

Trang 1

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MỖI TRƯỜNG

THÀNH PHÓ HỎ CHÍ MINH ; KHOA HE THONG THONG TIN VA VIEN THAM

BAO CAO DO AN GIUA KI MON LY THUYET DO THI

Nhom thuc hién: Nhom 10 Lop : 11_DH_CNTT4 Khoa : 2022— 2026

TP Hồ Chí Minh, 22 thúng 03 năm 2024

rang |

oO

Trang 2

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MỖI TRƯỜNG

THANH PHO HO CHi MINH KHOA HE THONG THONG TIN VA VIEN THAM

BAO CAO DO AN GIUA KI MON LY THUYET DO THI

Nhóm thực hiện: Nhóm 10 Lớp : I1 ĐH CNTT4 Khoa : 2022— 2026

TP Hồ Chí Minh, 22 tháng 03 năm 2024

Trang 2

Trang 3

Người lập bảng: Trần Phạm Thành Minh

BANG TU ĐÁNH GIÁ CỦA NHÓM

Tên nhóm: Nhóm 10

STT MSSV Họ Tên Công việc Đánh giá

(%)

lam lam word

trinh

3 1150080157 Trương Văn Quốc Lam pp,lam word, code 100%

Phong

Điêm (mong muôn của nhóm): 8ẩ

DO AN

Cho đồ thị G = (V, E) trong đó V là tập hợp gồm n đỉnh V = {I, 2, ., n} va E là tập m

canh E = {(il, jl), , (im, jm)} voi ik € [1,n], Vk € [1, m]

Nhập vào đỉnh xuất phát X, in ra đanh sách các đỉnh (theo thứ tự) được duyệt theo chiều rộng

từ X

.BFS: Breadth First Search, duyệt theo chiều rộng

Tổng Quan Đồ Án

Goi y: Su dung thuật toàn trong Bảng 1.1 để in các đỉnh được duyệt theo thứ tự

Xây dựng đồ thị sử dụng ma trận kể hoặc danh sách kẻ

Bang 1.1 Thuat toán duyệt Đề thị theo chiều rộng

Thuật toản bís

1

2

3

4

5

6

7

8

9

_ while (Hang Doi con phan tir)

dequeue Hàng Đợi vào biến y

In đỉnh y ra

for all z kề với y chưa đánh dâu(tức là Mark[z]=0)

enqueue z vào Hàng Đợi

Mark[z] = 1; // Danh

Khoi tao mang Mark[] dé danh dau 0 cho tat cả các đỉnh

Chọn đỉnh X: enqueue X vào Hàng Đợi, X là đỉnh bat dau

Mark[X] = 1

Trang 3

Trang 4

11 end /while

Dữ liệu đầu vào (Input)

Trang 4

Trang 5

Cài đặt ma trận kê :

a œ»⁄

Danh sách

Đỉnh 0:

Dinh 1:

Dinh 2:

Dinh 3:

Dinh 4:

Dinh 5:

Dinh 6:

Dinh 7:

Thực hiện cài đặt ma trận kê

void printMatrix()

for (int 1= 0; 1<n; 1+4+)

{

{

for (int j = 0; 3 <n; j++)

cout << adjMatrrx[1][j] <<" ";

cout << endl;

}

}

}

int main() {

Graph g(9);

Trang 5

Trang 6

g.addEdge(0, 1);

g.addEdge(0, 7);

g.addEdge(1, 7);

g.addEdge(1, 2);

g.addEdge(2, 1);

g.addEdge(2, 5);

g.addEdge(2, 8);

g.addEdge(2, 3);

g.addEdge(3, 2);

g.addEdge(3, 5);

g.addEdge(3, 4);

g.addEdge(4, 3);

g.addEdge(4, 5);

g.addEdge(5, 3);

g.addEdge(5, 2);

g.addEdge(5, 4);

g.addEdge(5, 6);

g.addEdge(6, 5);

g.addEdge(6, 8);

g.addEdge(6, 7);

g.addEdge(7, 6);

g.addEdge(7, 0);

g.addEdge(7, 8);

g.addEdge(7, 1);

g.addEdge(8, 2);

g.addEdge(8, 6);

g.addEdge(8, 7);

g.printMatrix();

return 0;

8909090090

TT Ta

ee)

9199

98191

8981

C=)

A1

“A1

99909

09998

Trang 6

Trang 7

Hàm nhâp ma trận kê

void printMatrix() {

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

cout << adjMatrix[i][j] << " ";

}

cout << endl;

}

}

5 Thuật toán BES

Ham doi Queue:

Bước |:

*

FRONT

Buoc 2:

0

1

+

FRONT

Bước 3:

Visited

Queue

Visited

Queue

Trang 7

Trang 8

0 1 Visited

`

FRONT

Bước 4:

+

FRONT

Bước Š:

+

FRONT

Bước 6:

Trang §

Trang 9

+

FRONT

Thực hiện cài đặt chương trinh BES

#include <1ostream>

#include <vector>

#include <queue>

using namespace std;

class Graph {

public:

int n;

vector<vector<int>> adjList;

Graph(int numVertices) {

n =numVertices;

adjList.resize(n);

void addEdge(int u, int v) {

adjList[u].push_back(v);

adjList[v].push_back(u);

}

void BFS(int start) {

vector<bool> visited(n, false);

queue<int> q;

q.push(start);

visited[start] = true;

while (!q.empty()) {

int currentVertex = q.front();

q.popQ:

cout << currentVertex << " ":

for (int neighbor : adjList[currentVertex]) {

if (!visited[neighbor]) { visited[neighbor] = true;

Queue

Trang 9

Trang 10

q.push(neighbor);

}

}

b

int main() {

Graph g(9);

g.addEdge(0, 1);

g.addEdge(0, 7);

g.addEdge(1, 7);

g.addEdge(1, 2);

g.addEdge(2, 1);

g.addEdge(2, 5);

g.addEdge(2, 8);

g.addEdge(2, 3);

g.addEdge(3, 2);

g.addEdge(3, 5);

g.addEdge(3, 4);

g.addEdge(4, 3);

g.addEdge(4, 5);

g.addEdge(5, 3);

g.addEdge(5, 2);

g.addEdge(5, 4);

g.addEdge(5, 6);

g.addEdge(6, 5);

g.addEdge(6, 8);

g.addEdge(6, 7);

g.addEdge(7, 6);

g.addEdge(7, 0);

g.addEdge(7, 8);

g.addEdge(7, 1);

g.addEdge(8, 2);

g.addEdge(8, 6);

g.addEdge(8, 7);

cout << "Duyet BFS tu dinh 0: ";

s.BFS(0);

d) Két qua

Trang 10

Trang 11

—¬

7

Trang 11

Ngày đăng: 09/01/2025, 16:09