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

NIÊN LUẬN DUYỆT ĐỒ THỊ THEO CHIỀU SÂU (DFS)

30 412 7

Đ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

Định dạng
Số trang 30
Dung lượng 793 KB

Nội dung

NIÊN LUẬN DUYỆT ĐỒ THỊ THEO CHIỀU SÂU (DFS): Đối với cấu trúc dữ liệu thì nó cũng nghiên về phần lập trình. Nhưng ta thấy nó cũng có phần vẽ về đồ thị dể thông dụng hơn nhiều vì có nó sẽ làm ta có nhiều ý tưởng vẽ hơn. Do vậy, ta cũng có thể áp dụng phần vẽ đồ thị vào trong ngôn ngữ lập trình bằng đồ hoạ vậy ta sẽ thấy đẹp mắt hơn. Nói tới đồ thị thì gồm có 2 dạng đó là đồ thị có hướng và đồ thị vô hướng, biểu diễn đồ thị, các phép duyệt đồ thị.Và cũng trong số đó thì cũng có liên quan tới một phần em làm đó là: “Duyệt đồ thị theo chiều sâu”. Duyệt đồ thị theo chiều sâu là phải đi qua các đỉnh và các cạnh của đồ thị một cách có hệ thống. Và nó cũng có thể duyệt chiều sâu theo một hướng sâu nhất để tìm ra được kết quả chính xác hơn.

TRƯỜNG ĐẠI HỌC BẠC LIÊU KHOA CÔNG NGHỆ THÔNG TIN  NIÊN LUẬN 1: DUYỆT ĐỒ THỊ THEO CHIỀU SÂU (DFS) MSĐT: NL1 – TH045 Người đề:Th.s ………… Giáo Viên Hướng Dẫn: ………… Sinh Viên Thực Hiện: ……… MSSV: 1TH… HỌC KỲ 2, 20… – 20 LỜI NÓI ĐẦU  Để hoàn thành niên luận này, bên cạnh nổ lực thân với kết hợp kiến thức học, trình tìm hiểu thu thập thơng tin có liên quan đến nội dung đề tài niên luận Mặt khác chúng em nhận giúp đỡ hướng dẫn Đã giúp em hồn thành tốt niên luận Với nổ lực hết mình, em cố gắng hoàn thành niên luận suốt thời gian qua Do vốn hiểu biết hạn chế nên nhiều thiếu xót Mong góp ý kiến để niên luận em hồn thiện Em xin chân thành cảm ơn! MẪU CHẤM NIÊN LUẬN TÊN ĐỀ TÀI: DUYỆT ĐỒ THỊ THEO CHIỀU SÂU (DFS) GIÁO VIÊN HƯỚNG DẪN: TRIỆU … CÁC SINH VIÊN THỰC HIỆN: STT HỌ TÊN DIỆP …… MÃ SỐ ĐỀ TÀI NL1 – TH… I HÌNH THỨC: (tối đa 1, điểm) Bìa: (tối đa 0.5 điểm) Các tiêu đề: Loại đồ án, Tên đề tài, Giáo viên hướng dẫn, Thông tin sinh viên thực hiện, Năm thực Bố cục: (tối đa 0.5 điểm) Trang nhận xét GVHD GV chấm Mục lục: ( cấu trúc chương Mục, tiểu mục), Phụ lục: (nếu có), Tài liệu kham khảo II NỘI DUNG: (tối đa 4.5 điểm) II Giới thiệu (tối đa 0.5 điểm) Giới thiệu tổng quan Mục tiêu cần đạt II Lý thuyết: (tối đa điểm) Các khái niệm sử dụng đề tài: Kết vận dụng lý thuyết vào đề tài: II Ứng dụng: (tối đa 2.5 điểm) Kết quả/Lưu đồ Giới thiệu chương trình II Kết luận: (tối đa 0.5 điểm) Nhận xét kết đạt Hạn chế Hướng phát triển III CHƯƠNG TRÌNH ĐỀ MÔ: (tối đa 3.5 điểm) Giao diện Hướng dẫn sử dụng Kết thực với kết phần ứng dụng IV THƯỞNG: (tối đa 1.0 điểm) TỔNG CỘNG: Bạc Liêu, ngày tháng GV CHẤM năm 20… Nhận Xét Của Giáo Viên Hướng Dẫn Bạc Liêu, ngày tháng năm 2010 Giáo viên hướng dẫn Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… MỤC LỤC MỤC LỤC .6 CHƯƠNG I: TỔNG QUAN I GIỚI THIỆU: II MỤC TIÊU CẦN ĐẠT: Về lý thuyết: Về chương trình Demo: III HƯỚNG PHÁT TRIỂN: Hướng phát triển: CHƯƠNG II: ỨNG DỤNG .8 I CƠ SỞ LÝ THUYẾT: II CÁC KHÁI NIỆM VÀ CHƯƠNG TRÌNH CON: 2> Biểu diễn ma trận: 10 3> Đồ thị liên thông: .11 4> Duyệt chiều sâu (DFS): 13 5> Ngồi sử dụng hàm định nghĩa sẵn C đồ họa: .15 III MƠ HÌNH, LƯU ĐỒ, CHƯƠNG TRÌNH CON VÀ KẾT QUẢ ĐẠT ĐƯỢC: 16 1.Mơ hình chương trình chính: .16 Lưu đồ số chương trình: 17 CHƯƠNG 3: KẾT LUẬN VÀ ĐÁNH GIÁ 29 I KẾT QUẢ ĐẠT ĐƯỢC: 29 II HẠN CHẾ: 29 III HƯỚNG PHÁT TRIỂN: 29 TÀI LIỆU THAM KHẢO 30 CHƯƠNG I: TỔNG QUAN I GIỚI THIỆU: Ngày với phát triển mạnh mẽ công nghệ, đặt biệt ngành công nghệ thông tin Trong lĩnh vực này, liên quan khơng đến môn cấu trúc liệu giải thuật Do đó, phần quan trọng hệ thống thơng tin Đối với cấu trúc liệu nghiên phần lập trình Nhưng ta thấy có phần vẽ đồ thị dể thơng dụng nhiều có làm ta có nhiều ý tưởng vẽ Do vậy, ta áp dụng phần vẽ đồ thị vào ngôn ngữ lập trình đồ hoạ ta thấy đẹp mắt Nói tới đồ thị gồm có dạng SVTH: Diệp …………… Trang Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… đồ thị có hướng đồ thị vơ hướng, biểu diễn đồ thị, phép duyệt đồ thị.Và số có liên quan tới phần em làm là: “Duyệt đồ thị theo chiều sâu” Duyệt đồ thị theo chiều sâu phải qua đỉnh cạnh đồ thị cách có hệ thống Và duyệt chiều sâu theo hướng sâu để tìm kết xác Đề tài nói mơ hình hố đồ thị như: đọc File, vẽ đồ thị, in nội dung nút giải thuật DFS Để giải vấn đề trên, em định dùng cấu trúc mảng II MỤC TIÊU CẦN ĐẠT: Về lý thuyết: - Cần hiểu nắm rõ giải thuật duyệt đồ thị theo chiều sâu cấu trúc liệu giải thuật - Nắm vững ngơn ngữ lập trình C nhằm giải cách hiệu vấn đề đặt - Chương trình Demo phải dễ hiểu dễ coi, đề tránh cho người kham khảo không muốn xem Về chương trình Demo: - Cung cấp giao diện thân thiện với người dùng - Cho phép nhập vào File, vẽ đồ thị đồ hoạ, in nội dung nút theo giải thuật DFS - Trong phần vẽ đồ thị em có sử dụng hàm thư viện chuột để vẽ III HƯỚNG PHÁT TRIỂN: Hướng phát triển: Qua trình nghiên cứu thực niên luận tóm lược sau: 1.1 Về cấu trúc liệu: - Dữ liệu đầu vào nhập từ bàn phím - Dữ liệu đầu ghi File 1.2 Về ngôn ngữ lập trình: SVTH: Diệp …………… Trang Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… - Sau tìm hiểu so sánh số ngơn ngữ lập trình gồm: Pascal, C, C++ … em định chọn ngơn ngữ lập trình C để cài đặt chương trình Demo với lý sau: + C ngơn ngữ lập trình linh động phổ biến + C hỗ trợ thư viện đáp ứng hàm dùng để xử lý thích hợp với đề tài em + Chọn cấu trúc danh sách để cài đặt + Ngồi ra, C ngơn ngữ thông dụng nhiều người sử dụng đến CHƯƠNG II: ỨNG DỤNG I CƠ SỞ LÝ THUYẾT: Lý thuyết đồ thị lĩnh vực nghiên cứu từ năm đầu kỷ 18 nhà toán học Leonhard Euler người Thụy Sĩ Đồ thị sử dụng đề giải nhiều toán thuộc lĩnh vực khác nhau, tin học trường hợp cụ thể Có thể nói, lý thuyết đồ thị ứng dụng rộng rãi tất lĩnh vực khác II CÁC KHÁI NIỆM VÀ CHƯƠNG TRÌNH CON: 1> Đồ thị: Là cấu trúc liệu rời rạc bao gồm đỉnh cung nối cặp đỉnh SVTH: Diệp …………… Trang Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… Hay đồ thị cặp G=(V,E), V đỉnh E= { (x,y) | x,y ∈ E } tập cạnh Đồ thị tập hợp đối tượng biểu diễn đỉnh đồi tượng có quan hệ biểu diễn cung Cũng biểu diễn đồ thị hình học: Trên mặt phẳng biểu diễn điểm, biểu diễn cung đoạn có rõ hướng cung * Đồ thị gồm có: đồ thị vơ hướng đồ thị có hướng - Đồ thị có hướng ký hiệu G=[X,U] xác định bởi: + X gọi đỉnh đồ thị Nếu đồ thị có n đỉnh, tức [X] = n, đựoc nói bậc đồ thị n Khi số phần tử X hữu hạn thị gọi đồ thị hữu hạn + U gọi cặp đỉnh có thứ tự u=(i,j), gọi cung nối đỉnh i với j đồ thị Đỉnh i gọi gốc, đỉnh j gọi nhọn, hai đầu mút cung u Bằng hình vẽ, đỉnh đồ thị có hướng trình bày điểm, cung trình bày mũi tên nối từ đỉnh gốc tới đỉnh nhọn - Đồ thị vô hướng ký hiệu G=[X,U] xác định bởi: + X gọi đỉnh đồ thị + U gọi cặp đỉnh khơng tính đến thứ tự u=(i,j), gọi cạnh nối đỉnh i với j đồ thị Bằng hình vẽ, đỉnh đồ thị vơ hướng trình bày điểm, cạnh trình bày đoạn thẳng nối đỉnh SVTH: Diệp …………… Trang Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… 2> Biểu diễn ma trận: * Ma trận kề, ma trận có trọng số: Xét đồ thị đơn vô hướng G=[V,E], với tập đỉnh V={ 1,2…n }, với tập cạnh E={ e1,e2,…em } Ta gọi ma trận kề phần tử 1theo quy định sau: A = { aij : aij = (i.j) ∈ Ej , aij = (i,j) ∉ E; I,j =1,2,…, n} Ví dụ1: Biểu diễn ma trận kề: 1 6 0 1 0  1 1 0    1 0    0 0 1  0 1    0 1  - Tính chất: + Ma trận kề đồ thị vô hướng đồ thị đối xứng A[i,j] = A[j,i]; i,j = 1,2,… n Ngược lại, (0,1) ma trận cấp n đẳng cấu với đơn đồ thị vô hướng n đỉnh + Tổng phần tử theo dòng i (cột j) ma trận kề bậc đỉnh I (đỉnh j) + Nếu ký hiệu ,i,j = 1,2,…,n phần tử ma trận Khi đó: Ap = A.A… A (p lần); aijp , i, j = 1,2,…,n, Ma trận kề đồ thị có hướng định nghĩa tương tự, cần lưu ý tới hướng cạnh Ma trận kề đồ thị có hướng khơng đối xứng Ví dụ 1: Ma trận Kề đồ thị có hướng SVTH: Diệp …………… 0 1 2 0 0 0 0  0 0 5 1 0    0  10 0Trang  0  Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… Trong Path tệp tin cần mở để ghi đọc; Mode chuỗi cách thức mà tập tin mở - int fclose(FILE *f): f trỏ tập tin mở hàm fopen(); fclose dùng để đóng tập tin mở hàm fopen() Nếu đóng tập tin kết trả số 0, khơng có lỗi xảy - fprintf(FILE *f, const char *format, varexpr) Trong đó: format chuỗi định dạng; varexpr danh sách biểu thức, biểu thức cách dấu phẩy(,) Dùng để ghi liệu có định dạng lên tập tin văn - fscanf(FILE *f, const char *format, varlist) Trong đó: format chuỗi định dạng; varlist danh sách biến, biến cách dấu phẩy(,).Dùng để đọc liệu từ tập tin văn - memset(char *Des, int c, size_t n): Dùng để đặt n kí tự cho chuỗi kí tự c b> Về đồ hoạ: - initgraph( int *graphdrive, int *graphmode, char * Path) Trong đó: graphdriver chứa trình điều khiển đồ họa; graphmode kiểu đồ họa; Path đường dẫn đến thư mục chứa drive đồ hoạ - circle(int x, int y, int r): Hàm vẽ đường tròn hình đồ họa có tâm toạ độ(x,y) có bán kính r - setlinestyle( int style, int pattern, int thickness): Để thiết lập dạng, mẩu bề dày đường thẳng - outtextxy(int x, int y, char far * textstring): Hiển thị nội dung xâu textstring toạ độ (x,y) hình đồ họa - setbkcolor(Mau): Thiết lập màu cho hình đồ họa - setcolor(Mau):Thiết lập màu nét BEGI III MƠ HÌNH, LƯU ĐỒ, CHƯƠNG TRÌNH CON VÀ KẾT QUẢ ĐẠT ĐƯỢC: N 1.Mơ hình chương trình chính: NHẬP DỮ LIỆU Nhập ma trận, in ma trận, thành phần liên thông, DFS, … MENU XỬ LÝ SVTH: Diệp …………… Trang 16 END Đề tài: Duyệt Đồ Thị Theo Chiều Sâu (DFS) GVHD: Triệu …… Lưu đồ số chương trình: a> Creat_matrix: BEGI N Nhập số phần tử n File *fp1= fopen(“MTKe.txt”,”w”) n i=1 i

Ngày đăng: 15/06/2020, 10:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w