Uniersidde Federl d Prí Centro de Informátic Deprtmento de Informátic Estrtr de Ddos Grfos 1 } Tigo Mritn } tigo@ci.fp.r
Grfos } Um grfo é m pr (V, A), onde } V é m conjnto de nós, chmdos de értices } A é m coleção de pres de értices, chmdos de rests
Grfos } Exemplo: Rede de Aeroportos } Um értice represent m eroporto e rmzen o código do eroporto composto de três letrs } Um rest represent m rot de ôo entre dois eroportos e rmzen milhgem d rot 1843 ORD 849 PVD SFO 337 802 LGA HNL 2555 LAX 1233 DFW 1120 MIA 3
Tipos de rests } Arest dirigid } Pr ordendo de értices (,) } 1 o értice é origem } 2 o értice é o destino } Ex. Um ôo } Arest não-dirigid } Pres não-ordendos de értices (,) } Ex. Distânci entre eroportos } Grfo dirigido } Tods s rests são dirigids } Ex. Rede de ôos } Grfo não-dirigido } Todos s rests são não-dirigids } Ex. Rede de distânci entre eroportos ORD ORD Vôo AA 1206 849 Milhs PVD PVD
Aplicções } Circitos Eletrônicos csl1 csl1 } Redes de trnsporte } Rede de rodois } Rede de ôos } Redes de comptdores } Rede locl } Internet } Redes Sociis cs.ron.ed tt.net cox.net Pl mth.ron.ed ron.ed qest.net John Did
Terminologi } Vértices-fim de m rest } U e V são os pontos-finis d rest } Arests incidentes em m értice }, d, e são incidentes em V } Vértices Adjcentes } U e V são djcentes } Gr de m értice } N o de rests do értice } Ex: X tem gr 5 } Arests prlels } h e i são rests prlels } Ato-loop } j é m to-loop U c V d e W f X Y g h i Z j
Terminologi (cont.) } Cminho } Seqênci de értices e rests } Começ com m értice } Finliz com m értice } Cd rest é precedid e segid por ses pontos-finis } Cminho Simples } Cminho de tl form qe todos os ses értices e rests são distintos } Exemplos } P 1 =(V,,X,h,Z) é m cminho simples } P 2 =(U,c,W,e,X,g,Y,f,W,d,V) é m cminho qe não é simples U c V d P 2 e W f P 1 X g Y h Z
Terminologi (cont.) } Ciclo } Seqênci circlr de értices e rests } Cd rest é precedid e segid pelos ses pontos-finis } Ciclo simples } Um ciclo de form qe todos os ses értices e rests sejm diferentes } Exemplos } C 1 =(V,,X,g,Y,f,W,c,U,, ) é m ciclo simples } C 2 =(U,c,W,e,X,g,Y,f,W,d,V,, ) é m ciclo qe não é simples U c V d C 2 W f X e Y C 1 g h Z
Implementção de Grfos } Como implementr grfos? } List de rests } List de djcêncis } Mtriz de djcêncis
List de rests } Estrtr Vértice } Informção rmzend c } Estrtr Arest } Che inteir (índice) ssocido com o értice } Informção rmzend } Ponteiros pr os értices d z z (i) c d 0 1 2 3
List de Adjcêncis } Arry de lists encdeds } Pr descorir se existe rest (i,j) percorremos list do nó i té encontrrmos (o não) j (i)
Mtriz de Adjcêncis } Mtriz de tmnho N x N, onde N é o número de értices 0 1 2 } A céll (i,j) indic se existe rest entre i e j. } Vlor 0 indic rest inexistente. 0 1 2 0 0 1 0 1 1 0 1 2 0 1 0
Mtriz de Adjcêncis } Estrtr Vértice } Che inteir (índice) ssocido com o értice } Informção rmzend } Estrtr Arest } Informção rmzend } Ponteiros pr os értices 0 1 2 0 1 2 } Mtriz } Ponteiro pr rest de értices djcentes 0 1 2 } Nll cso não hj rest
Bsc em Grfos } Operção mis comm em Grfos: isit sistemátic ses nós (m únic ez!) } Dois tipos ásicos de sc: } Bsc em lrgr/extensão } Bsc em profndidde
Bsc em Lrgr } Semelhnte sc por níel em m árore } Pr cd nó, nós o processmos e colocmos ses djcentes em m FILA c d z e k k z,,, k, z
Bsc em Lrgr Bsc-Lrgr ( Nó início ) { AdicionrFil( inicio ) Enqnto ( Fil não está zi ) { Nó P = RetirrFil() Processr(P) Pr cd Vértice izinho de P não isitdo AdicionrFil(Vértice) } } c d z e k,,, k, z k z
Bsc em Profndidde } Semelhnte sc em pré-ordem em m árore c d z e k k z,, k,, z
Bsc em Profndidde Bsc-Profndidde( Nó início ) { Processr(início) Se existe Vértice izinho ind não isitdo Bsc-Profndidde(Vértice) } c d z e k,, k,, z k z
Uniersidde Federl d Prí Centro de Informátic Deprtmento de Informátic Estrtr de Ddos Grfos 19 } Tigo Mritn } tigo@ci.fp.r