tai lieu cntt

6
Tài liu hưng dn thc hành môn Lý thuyết ñthTrang 1 LAB 01: MỘT SỐ THAO TÁC TRÊN ĐỒ THỊ MỤC TIÊU Hoàn tất bài thực hành này, sinh viên có thể: - Biểu diễn đồ thị bằng ma trận kề. - Kiểm tra tính hợp lệ của ma trận, Kiểm tra đồ thị vô hướng - Thực hiện 1 số thao tác đơn giản trên đồ thị. Thời gian thực hành: từ 120 phút đến 400 phút TÓM TẮT Ta thống nhất 1 số thuật ngữ sử dụng trong bài như sau: - Các loại đồ thị: - Xét G = (V, E) là đồ thị đơn (có hướng hoặc vô hướng), trong đó o V = {v 1 , v 2 ,…}, |V| = n. o E = {e 1 , e 2 , …}, |E| = e. - Ma trận kề của đồ thị G là một ma trận nhị phân (0 và 1) cấp n x n sao cho ͳǡ ݑ× ዎ ݔ ݐ ݔ Ͳǡ ݑØ × ዎ ݔ ݐ ݔ - Ma trận kề có trọng số (ma trận trọng) của đồ thị G là một ma trận cấp n x n sao cho ዌ ዎ ዚ ሺǡ ሻǡ ݑ× ዎ ݔ ݐ ݔ Ͳǡ ݑØ × ዎ ݔ ݐ ݔ Ví dụ Ma trận trọng số 1 2 3 4 1 0 0 1 2 2 2 0 -3 0 3 0 0 0 4 4 0 0 0 0 1 2 3 4 5 1 0 2 0 4 0 2 2 0 -3 1 2 3 0 -3 0 2 2 4 4 1 2 0 0 5 0 2 2 0 0

Upload: xuan-bach

Post on 31-Oct-2014

12 views

Category:

Documents


3 download

DESCRIPTION

Tai Lieu CNTT

TRANSCRIPT

Ti liu hng dn thc hnh mn L thuyt th Trang 1 LAB 01: MT S THAO TC TRN TH MC TIU Hon tt bi thc hnh ny, sinh vin c th: -Biu din th bng ma trn k. -Kim tra tnh hp l ca ma trn, Kim tra th v hng -Thc hin 1 s thao tc n gin trn th. Thi gian thc hnh: t 120 pht n 400 pht TM TT Ta thng nht 1 s thut ng s dng trong bi nh sau: -Cc loi th: -Xt G = (V, E)l th n (c hng hoc v hng), trong oV = {v1, v2,}, |V| = n. oE = {e1, e2, }, |E| = e. -Ma trn k ca th G l mt ma trn nh phn (0 v 1) cp n x n sao cho _o] = , n co can n o ]o] = , n n co can n o ]

-Ma trn k c trng s (ma trn trng) ca th G l mt ma trn cp n x n sao cho _o] = tiong s ca cung a(i, j), n co can n o ]o] = , n n co can n o ]

V d Ma trn trng s 1234 10012 220-30 30004 40000 12345 102040 220-312 30-3022 441200 502200 Ti liu hng dn thc hnh mn L thuyt th HCMUS 2010 Trang 2 -Ma trn lin thuc ca G l mt ma trn nh phn kch thc n x e c _o] = , nu canh ] ni voi nh o] = , nu canh ] khng ni voi nh

o] = , nu canh ] hong ia khi nh o] = , nu canh ] hong vo nh o]= , nu canh ] khng k voi nh

th v hng th c hng NI DUNG THC HNH C bn Sinh vin c k pht biu bi tp v thc hin theo hng dn: Cho mt file text m t n th (c hng hoc v hng) c cu trc nh sau: -Dng u tin cha s nguyn n, cho bit s nh ca th -n dng tip theo, mi dng cha n s nguyn ng vi cc phn t trong ma trn k. Xy dng lp GRAPH cho i tng th.Vit hm khi to t 1 file text cha ma trn k ca th. Kim tra tnh hp l ca do th va khi to. Kim tra xem th c v hng hay khng? Phn tch - biu din ma trn k, ta dng mt mng (kiu nguyn hay thc ty vo yu cu bi). Nh vy lp GRAPH c t nht 2 thuc tnh nh sau #defineMAX100 class GRAPH { public: GRAPH(char* fname); ~GRAPH(void); } -Thao tc cn thc hin: Khi to ma trn t file, Kim tra tnh hp l ca ma trn, Kim tra th v hng. Chng trnh mu dothi.txt 50 1 0 0 11 0 1 0 00 1 0 0 10 0 0 0 11 0 1 1 0 GRAPH.h #include "stdio.h" #pragma once #defineMAX100 class GRAPH { public: GRAPH(char* fname); ~GRAPH(void); Ti liu hng dn thc hnh mn L thuyt th HCMUS 2010 Trang 3 private: int n;// so dinh cua do thi int a[MAX][MAX];// ma tran ke public: void XuatDoThi(void); bool KiemTraDoThiHopLe(void); bool KiemTraDoThiVoHuong(void); }; GRAPH.cpp #include "GRAPH.h" GRAPH::GRAPH(char* filename) { FILE* f; f = fopen(filename, "rt"); if (f == NULL){ //Cch x l nu m file b li y l g? n=0; return; } fscanf(f, "%d", &n); int i, j; for (i=0; i