Code Thuật Toán Tìm Kiếm Theo Chiều Rộng

     
Lớp 1

Đề thi lớp 1

Lớp 2

Lớp 2 - Kết nối tri thức

Lớp 2 - Chân trời sáng tạo

Lớp 2 - Cánh diều

Tài liệu tham khảo

Lớp 3

Lớp 3 - Kết nối tri thức

Lớp 3 - Chân trời sáng tạo

Lớp 3 - Cánh diều

Tài liệu tham khảo

Lớp 4

Sách giáo khoa

Sách/Vở bài tập

Đề thi

Lớp 5

Sách giáo khoa

Sách/Vở bài tập

Đề thi

Lớp 6

Lớp 6 - Kết nối tri thức

Lớp 6 - Chân trời sáng tạo

Lớp 6 - Cánh diều

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

Lớp 7

Lớp 7 - Kết nối tri thức

Lớp 7 - Chân trời sáng tạo

Lớp 7 - Cánh diều

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

Lớp 8

Sách giáo khoa

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

Lớp 9

Sách giáo khoa

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

Lớp 10

Lớp 10 - Kết nối tri thức

Lớp 10 - Chân trời sáng tạo

Lớp 10 - Cánh diều

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

Lớp 11

Sách giáo khoa

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

Lớp 12

Sách giáo khoa

Sách/Vở bài tập

Đề thi

Chuyên đề & Trắc nghiệm

IT

Ngữ pháp Tiếng Anh

Lập trình Java

Phát triển web

Lập trình C, C++, Python

Cơ sở dữ liệu




Bạn đang xem: Code thuật toán tìm kiếm theo chiều rộng

*

Cấu trúc dữ liệu và giải thuậtMột số khái niệm về Giải thuật Cấu trúc dữ liệu mảng (Array)Danh sách liên kết - Linked ListsNgăn xếp & Hàng đợiMột số Giải thuật tìm kiếmMột số Giải thuật sắp xếpCấu trúc dữ liệu đồ thị (Graph)Cấu trúc dữ liệu câyĐệ qui (Recursion)Tài liệu tham khảo
Tìm kiếm theo chiều rộng trong C
Trang trước


Xem thêm: Tóm Tắt Kiến Thức Lịch Sử 12 Chi Tiết, Đầy Đủ, Tóm Tắt Lý Thuyết Lịch Sử Lớp 12 Chi Tiết, Đầy Đủ

Trang sau

Sau khi đã theo dõi phần giải thuật trong chương trước, trong chương này chúng ta sẽ cùng tìm hiểu phần triển khai code trong ngôn ngữ C của giải thuật Tìm kiếm theo chiều rộng.

*

Tìm kiếm theo chiều rộng trong C

#include #include #include #define MAX 5struct Vertex { char label; bool visited;};//khai bao cac bien cho hang doi (queue)int queue;int rear = -1;int front = 0;int queueItemCount = 0;//khai bao cac bien cho do thi (graph)//khai bao danh sach cac dinh (vertex)struct Vertex* lstVertices;//khai bao mot ma tran ke (adjacency matrix)int adjMatrix;//mot bien de dem so dinh (vertex)int vertexCount = 0;//cac ham thao tac tren hang doi (queue)void insert(int data) { queue<++rear> = data; queueItemCount++;}int removeData() { queueItemCount--; return queue; }bool isQueueEmpty() { return queueItemCount == 0;}//cac ham thao tac tren do thi (graph)//them dinh vao danh sach cac dinhvoid addVertex(char label) { struct Vertex* vertex = (struct Vertex*) malloc(sizeof(struct Vertex)); vertex->label = label; vertex->visited = false; lstVertices = vertex;}//them canh vao mang cac canhvoid addEdge(int start,int end) { adjMatrix = 1; adjMatrix = 1;}//hien thi cac dinhvoid displayVertex(int vertexIndex) { printf("%c ",lstVertices->label);} //lay dinh chua duyet tu ma tran keint getAdjUnvisitedVertex(int vertexIndex) { int i; for(i = 0; ivisited == false) return i; } return -1;}void breadthFirstSearch() { int i; //danh dau nut dau tien (first node) la da duyet (visited) lstVertices<0>->visited = true; //hien thi dinh displayVertex(0); //chen chi muc cua dinh vao trong hang doi insert(0); int unvisitedVertex; while(!isQueueEmpty()) { //Rut dinh chua duoc duyet tu hang doi int tempVertex = removeData(); //khong tim thay dinh lien ke while((unvisitedVertex = getAdjUnvisitedVertex(tempVertex)) != -1) { lstVertices->visited = true; displayVertex(unvisitedVertex); insert(unvisitedVertex); } } //hang doi la trong, hoan thanh tim kiem, reset gia tri cua visited for(i = 0;ivisited = false; } }int main() { int i, j; for(i = 0; i

Kết quả

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

*

Đã có app chuyensuamayphotocopy.vn trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

*



Xem thêm: Bài Tập Mệnh Đề Quan Hệ Lớp 9 Violet, Bài Tập Mệnh Đề Quan Hệ Có Đáp Án Violet

*

Follow fanpage của team https://www.facebook.com/chuyensuamayphotocopy.vnteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.chuyensuamayphotocopy.vn để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.