SlideShare uma empresa Scribd logo
1 de 12
Técnicas de Programación I UNIVERSIDAD PRIVADA SAN PEDRO TEMA : TRABAJO DE INVESTIGACION DE GRAFOS ,[object Object],[object Object],[object Object],[object Object],[object Object],ESCUELA DE ING. INFORMATICA Y DE SISTEMAS FACULTAD DE INGENIERIA
GRAFOS: Estructura de datos no lineal (Programación no numérica) que permiten representar los diferentes tipos de relaciones entre objetos G=(N,A) Supongamos: N={1,2,3,4,5} Y la siguiente relación en A: R={(1,2);(2,3);(3,4);(4,5)} En forma de grafo sería: 1 2 3 4 5
TIPOS DE GRAFOS: ,[object Object],* * ,[object Object],* * ,[object Object]
Búsqueda en Profundidad: Se implementa de forma recursiva, aunque también puede realizarse con una pila. Se utiliza un array “val” para almacenar el orden en que fueron explorados los vértices. int  id=0; int  val[V];  void  buscar()  { int  i; for  (i=1; i<=V; i++)  val[i]=0; for  (i=1; i<=V; i++)  if  (val[i]==0)  visitar(i);  } void  visitar(int i) // matriz de adyacencia  {  int  t; val[i]=++id; for  (t=1; t<=V; t++)  if  (a[i][t] &&  val[t]==0)  visitar(t); } void  visitar(int i) // listas de adyacencia  {  nodo  *t;  val[i]=++id;  for  (t=a[i]; t!=z; t=t->sig)  if  (val[t->v]==0) visitar(t->v); }
Representación de Grafos:  Una característica especial en los grafos es que podemos representarlos utilizando dos estructuras de datos distintas. En los algoritmos que se aplican sobre ellos veremos que adoptarán tiempos distintos dependiendo de la forma de representación elegida. En particular, los tiempos de ejecución variarán en función del número de vértices y el de aristas, por lo que la utilización de una representación u otra dependerá en gran medida de si el grafo es denso o disperso. Para nombrar los nodos utilizaremos letras mayúsculas, aunque en el código deberemos hacer corresponder cada nodo con un entero entre 1 y N (número de nodos o vértices) de cara a la manipulación de los mismos.
Obtención del camino de un Grafo: Método DIJKSTRA: es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de vértices en un grafo dirigido y con pesos en cada  arista . void  iniciaGrafo() { for  ( int  i=1; <=n; i++) memset(&C[i][1], 0, n * sizeof(int)); } void  insertarnodo( int  a,  int  b,  int  c) { C[a][b] = C[b][a] = c; } int  D[MAXN];  /* distancias mínima desde s al nodo i */ int  padre[MAXN];  /* ruta hacia el nodo i desde s */ int  permanente[MAXN]; /* verdadero al tener la menor ruta al nodo i */
// calculamos las distancias while (  ! pq.empty() ) { nodotmp = pq.top();  pq.pop(); Vi = nodotmp.second; if  ( !permanente[Vi] ) { permanente[Vi] =  true ; for  (Vj = 1; Vj <= n; Vj++) if (!permanente[Vj] && C[Vi][Vj]>0 && D[Vi]+C[Vi][Vj]<D[Vj]) D[Vj] = D[Vi] + C[Vi][Vj], padre[Vj] = Vi, pq.push( pair <int,int> (-D[Vj], Vj) ); } } }  // leemos las aristas for ( int  i=0; i<e; i++) cout <<“Ingrese Arista1: ”; cin >>a; cout <<“Ingrese Arista2: ”;  cin >>b; cout <<“Ingrese Arista3: ”;  cin>>c; insertanodo(a, b, c); // usamos dijkstra para calcular la menor distancia // desde el i-esimo nodo hacia los demas for  ( int  i=1; i<=n; i++) dijkstra( i ), cout <<“La menor distancia desde el nodo hacia los otros nodos es: “<< i; imprimeGrafo(n), cout <<endl; }
Método WARSHALL: Para lograr el propósito del recorrido mínimo dentro de un grafo G, es necesario para nuestro caso en particular (puesto que no es la única técnica existente) la utilización del algoritmo de WARSHALL para el camino mínimo, el cual se expresa de la forma siguiente:
#include <stdio.h> #include <conio.h> #include <ctype.h> #include <stdlib.h> #include <iostream.h> #include <string.h> #define N 50 struct grafo {int dato; grafo *grafo[N]; grafo *sig; }*Pgrafo; grafo *insertar(grafo *nodo, grafo *Agrafo, int num) {if( !Agrafo ) {Agrafo= (grafo*) malloc( sizeof( grafo ) ); Agrafo->sig= NULL; Agrafo->dato= num; if( !nodo ) return Agrafo; else nodo->sig= Agrafo; return Agrafo; }
insertar( Agrafo, Agrafo->sig, num ); return nodo;} int enlazarfull( grafo *nodo ) {  int i; int vacio; if( !nodo->sig )return 0; for( i=0;i<vacio(nodo);i++ ) nodo->grafo[i]= NULL; return 1;} void main() { char op='A'; int val; int i; while(op!='S' ) {clrscr(); cout<<&quot; [N].- Nuevo Nodo.&quot; ; cout<<&quot; [E].- Menu Enlazes.&quot;; cout<<&quot; [V].- Ver Grafo.&quot;; cout<<&quot; [S].- Salir.&quot;; cout<<&quot; Digite Opcion: [  ] &quot;; cin>>op;
switch(op) { case 'N': cout<<&quot; Numero: &quot;; cin>>(&quot;&i&quot;,&val); Pgrafo= insertar( Pgrafo, Pgrafo, val ); break; case 'E':  enlazarfull(Pgrafo); break; case 'V':  break; } } cout<<&quot; Pulsa una tecla para salir...&quot;; getch(); return 0; }
GRACIAS TOTALES, nos vemos en el bingo

Mais conteúdo relacionado

Mais procurados

20 Introduccion Grafos
20 Introduccion Grafos20 Introduccion Grafos
20 Introduccion Grafos
UVM
 
Presentación de grafos
Presentación de  grafosPresentación de  grafos
Presentación de grafos
marcoslotauro
 
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Federico Dauria
 

Mais procurados (20)

Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafos
 
19 Grafos 1
19 Grafos 119 Grafos 1
19 Grafos 1
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Unidad 6 grafos
Unidad 6  grafosUnidad 6  grafos
Unidad 6 grafos
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
20 Introduccion Grafos
20 Introduccion Grafos20 Introduccion Grafos
20 Introduccion Grafos
 
Grafos
GrafosGrafos
Grafos
 
I1M2010-T22: Algoritmos sobre grafos en Haskell
I1M2010-T22: Algoritmos sobre grafos en HaskellI1M2010-T22: Algoritmos sobre grafos en Haskell
I1M2010-T22: Algoritmos sobre grafos en Haskell
 
Tema grafos
Tema grafosTema grafos
Tema grafos
 
Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de Grafos
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Grafos en sage
Grafos en sageGrafos en sage
Grafos en sage
 
Grafos
GrafosGrafos
Grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Presentación de grafos
Presentación de  grafosPresentación de  grafos
Presentación de grafos
 
Capitulo1 grafos
Capitulo1 grafosCapitulo1 grafos
Capitulo1 grafos
 
Grafos
GrafosGrafos
Grafos
 
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)
 

Destaque (10)

Vocabulario
VocabularioVocabulario
Vocabulario
 
El club de los que leen y escriben
El club de los que leen y escribenEl club de los que leen y escriben
El club de los que leen y escriben
 
Fichas de resumen en equipo
Fichas de resumen en equipoFichas de resumen en equipo
Fichas de resumen en equipo
 
Leer y escribir para vivir
Leer y escribir para vivirLeer y escribir para vivir
Leer y escribir para vivir
 
10. educacion bilingue la tradicion oral en la adquisicion de la lectoescrit...
10.  educacion bilingue la tradicion oral en la adquisicion de la lectoescrit...10.  educacion bilingue la tradicion oral en la adquisicion de la lectoescrit...
10. educacion bilingue la tradicion oral en la adquisicion de la lectoescrit...
 
Exposiciones
ExposicionesExposiciones
Exposiciones
 
DIDACTICA DE LA LECTURA
DIDACTICA DE LA LECTURADIDACTICA DE LA LECTURA
DIDACTICA DE LA LECTURA
 
Origenes De La FáBula
Origenes De La FáBulaOrigenes De La FáBula
Origenes De La FáBula
 
Linea de tiempo fabula y epopeya
Linea de tiempo fabula y epopeyaLinea de tiempo fabula y epopeya
Linea de tiempo fabula y epopeya
 
Lecto Escritura
Lecto EscrituraLecto Escritura
Lecto Escritura
 

Semelhante a Grafos

3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
luis freddy
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
luis freddy
 
COMANDOS EJEMPLOS DE MATLAB.pdf
COMANDOS EJEMPLOS DE MATLAB.pdfCOMANDOS EJEMPLOS DE MATLAB.pdf
COMANDOS EJEMPLOS DE MATLAB.pdf
SolitarioFredd
 
Agrupamiento Kmeans
Agrupamiento KmeansAgrupamiento Kmeans
Agrupamiento Kmeans
Omar Sanchez
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
louis
 

Semelhante a Grafos (20)

Programacion ii
Programacion iiProgramacion ii
Programacion ii
 
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
Grafos-2021.pdf
Grafos-2021.pdfGrafos-2021.pdf
Grafos-2021.pdf
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
Ejercicios programacion cortos
Ejercicios programacion cortosEjercicios programacion cortos
Ejercicios programacion cortos
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
MéTodos Java
MéTodos JavaMéTodos Java
MéTodos Java
 
Funciones str
Funciones strFunciones str
Funciones str
 
GRAFICOS POLARES CLASE 8 2023.pdf
GRAFICOS POLARES CLASE 8 2023.pdfGRAFICOS POLARES CLASE 8 2023.pdf
GRAFICOS POLARES CLASE 8 2023.pdf
 
COMANDOS EJEMPLOS DE MATLAB.pdf
COMANDOS EJEMPLOS DE MATLAB.pdfCOMANDOS EJEMPLOS DE MATLAB.pdf
COMANDOS EJEMPLOS DE MATLAB.pdf
 
Agrupamiento Kmeans
Agrupamiento KmeansAgrupamiento Kmeans
Agrupamiento Kmeans
 
expo
expoexpo
expo
 
Graficos en matlab
Graficos en matlabGraficos en matlab
Graficos en matlab
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
 
Strcat
StrcatStrcat
Strcat
 
Plots
PlotsPlots
Plots
 
Cadenas y punteros.ppt
Cadenas y punteros.pptCadenas y punteros.ppt
Cadenas y punteros.ppt
 

Último

Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdfComparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
AJYSCORP
 
DIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptx
DIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptxDIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptx
DIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptx
7500222160
 
Hiperbilirrubinemia en el recién nacido.pptx
Hiperbilirrubinemia en el recién nacido.pptxHiperbilirrubinemia en el recién nacido.pptx
Hiperbilirrubinemia en el recién nacido.pptx
salazarsilverio074
 
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptxsenati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
nathalypaolaacostasu
 

Último (20)

Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdfComparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
Comparativo DS 024-2016-EM vs DS 023-2017-EM - 21.08.17 (1).pdf
 
DIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptx
DIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptxDIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptx
DIAPOSITIVAS LIDERAZGO Y GESTION INTERGENERACION (3).pptx
 
Sostenibilidad y continuidad huamcoli robin-cristian.pptx
Sostenibilidad y continuidad huamcoli robin-cristian.pptxSostenibilidad y continuidad huamcoli robin-cristian.pptx
Sostenibilidad y continuidad huamcoli robin-cristian.pptx
 
Manual de Imagen Personal y uso de uniformes
Manual de Imagen Personal y uso de uniformesManual de Imagen Personal y uso de uniformes
Manual de Imagen Personal y uso de uniformes
 
Las sociedades anónimas en el Perú , de acuerdo a la Ley general de sociedades
Las sociedades anónimas en el Perú , de acuerdo a la Ley general de sociedadesLas sociedades anónimas en el Perú , de acuerdo a la Ley general de sociedades
Las sociedades anónimas en el Perú , de acuerdo a la Ley general de sociedades
 
CONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdf
CONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdfCONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdf
CONSTITUCIÓN POLÍTICA DEL PERÚ al 25082023.pdf
 
Analisis del art. 37 de la Ley del Impuesto a la Renta
Analisis del art. 37 de la Ley del Impuesto a la RentaAnalisis del art. 37 de la Ley del Impuesto a la Renta
Analisis del art. 37 de la Ley del Impuesto a la Renta
 
4 Tipos de Empresa Sociedad colectiva.pptx
4 Tipos de Empresa Sociedad colectiva.pptx4 Tipos de Empresa Sociedad colectiva.pptx
4 Tipos de Empresa Sociedad colectiva.pptx
 
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
____ABC de las constelaciones con enfoque centrado en soluciones - Gabriel de...
 
mapa-conceptual-evidencias-de-auditoria_compress.pdf
mapa-conceptual-evidencias-de-auditoria_compress.pdfmapa-conceptual-evidencias-de-auditoria_compress.pdf
mapa-conceptual-evidencias-de-auditoria_compress.pdf
 
Correcion del libro al medio hay sitio.pptx
Correcion del libro al medio hay sitio.pptxCorrecion del libro al medio hay sitio.pptx
Correcion del libro al medio hay sitio.pptx
 
Maria_diaz.pptx mapa conceptual gerencia industral
Maria_diaz.pptx mapa conceptual   gerencia industralMaria_diaz.pptx mapa conceptual   gerencia industral
Maria_diaz.pptx mapa conceptual gerencia industral
 
EL REFERENDO para una exposición de sociales
EL REFERENDO para una exposición de socialesEL REFERENDO para una exposición de sociales
EL REFERENDO para una exposición de sociales
 
Reporte Tributario para Entidades Financieras.pdf
Reporte Tributario para Entidades Financieras.pdfReporte Tributario para Entidades Financieras.pdf
Reporte Tributario para Entidades Financieras.pdf
 
liderazgo guia.pdf.............................
liderazgo guia.pdf.............................liderazgo guia.pdf.............................
liderazgo guia.pdf.............................
 
Hiperbilirrubinemia en el recién nacido.pptx
Hiperbilirrubinemia en el recién nacido.pptxHiperbilirrubinemia en el recién nacido.pptx
Hiperbilirrubinemia en el recién nacido.pptx
 
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptxsenati-powerpoint_5TOS-_ALUMNOS (1).pptx
senati-powerpoint_5TOS-_ALUMNOS (1).pptx
 
Contabilidad Gubernamental guia contable
Contabilidad Gubernamental guia contableContabilidad Gubernamental guia contable
Contabilidad Gubernamental guia contable
 
CORRIENTES DEL PENSAMIENTO ECONÓMICO.pptx
CORRIENTES DEL PENSAMIENTO ECONÓMICO.pptxCORRIENTES DEL PENSAMIENTO ECONÓMICO.pptx
CORRIENTES DEL PENSAMIENTO ECONÓMICO.pptx
 
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADADECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
DECRETO-2535-DE-1993-pdf.pdf VIGILANCIA PRIVADA
 

Grafos

  • 1.
  • 2. GRAFOS: Estructura de datos no lineal (Programación no numérica) que permiten representar los diferentes tipos de relaciones entre objetos G=(N,A) Supongamos: N={1,2,3,4,5} Y la siguiente relación en A: R={(1,2);(2,3);(3,4);(4,5)} En forma de grafo sería: 1 2 3 4 5
  • 3.
  • 4. Búsqueda en Profundidad: Se implementa de forma recursiva, aunque también puede realizarse con una pila. Se utiliza un array “val” para almacenar el orden en que fueron explorados los vértices. int id=0; int val[V]; void buscar() { int i; for (i=1; i<=V; i++) val[i]=0; for (i=1; i<=V; i++) if (val[i]==0) visitar(i); } void visitar(int i) // matriz de adyacencia { int t; val[i]=++id; for (t=1; t<=V; t++) if (a[i][t] && val[t]==0) visitar(t); } void visitar(int i) // listas de adyacencia { nodo *t; val[i]=++id; for (t=a[i]; t!=z; t=t->sig) if (val[t->v]==0) visitar(t->v); }
  • 5. Representación de Grafos: Una característica especial en los grafos es que podemos representarlos utilizando dos estructuras de datos distintas. En los algoritmos que se aplican sobre ellos veremos que adoptarán tiempos distintos dependiendo de la forma de representación elegida. En particular, los tiempos de ejecución variarán en función del número de vértices y el de aristas, por lo que la utilización de una representación u otra dependerá en gran medida de si el grafo es denso o disperso. Para nombrar los nodos utilizaremos letras mayúsculas, aunque en el código deberemos hacer corresponder cada nodo con un entero entre 1 y N (número de nodos o vértices) de cara a la manipulación de los mismos.
  • 6. Obtención del camino de un Grafo: Método DIJKSTRA: es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de vértices en un grafo dirigido y con pesos en cada arista . void iniciaGrafo() { for ( int i=1; <=n; i++) memset(&C[i][1], 0, n * sizeof(int)); } void insertarnodo( int a, int b, int c) { C[a][b] = C[b][a] = c; } int D[MAXN]; /* distancias mínima desde s al nodo i */ int padre[MAXN]; /* ruta hacia el nodo i desde s */ int permanente[MAXN]; /* verdadero al tener la menor ruta al nodo i */
  • 7. // calculamos las distancias while ( ! pq.empty() ) { nodotmp = pq.top(); pq.pop(); Vi = nodotmp.second; if ( !permanente[Vi] ) { permanente[Vi] = true ; for (Vj = 1; Vj <= n; Vj++) if (!permanente[Vj] && C[Vi][Vj]>0 && D[Vi]+C[Vi][Vj]<D[Vj]) D[Vj] = D[Vi] + C[Vi][Vj], padre[Vj] = Vi, pq.push( pair <int,int> (-D[Vj], Vj) ); } } } // leemos las aristas for ( int i=0; i<e; i++) cout <<“Ingrese Arista1: ”; cin >>a; cout <<“Ingrese Arista2: ”; cin >>b; cout <<“Ingrese Arista3: ”; cin>>c; insertanodo(a, b, c); // usamos dijkstra para calcular la menor distancia // desde el i-esimo nodo hacia los demas for ( int i=1; i<=n; i++) dijkstra( i ), cout <<“La menor distancia desde el nodo hacia los otros nodos es: “<< i; imprimeGrafo(n), cout <<endl; }
  • 8. Método WARSHALL: Para lograr el propósito del recorrido mínimo dentro de un grafo G, es necesario para nuestro caso en particular (puesto que no es la única técnica existente) la utilización del algoritmo de WARSHALL para el camino mínimo, el cual se expresa de la forma siguiente:
  • 9. #include <stdio.h> #include <conio.h> #include <ctype.h> #include <stdlib.h> #include <iostream.h> #include <string.h> #define N 50 struct grafo {int dato; grafo *grafo[N]; grafo *sig; }*Pgrafo; grafo *insertar(grafo *nodo, grafo *Agrafo, int num) {if( !Agrafo ) {Agrafo= (grafo*) malloc( sizeof( grafo ) ); Agrafo->sig= NULL; Agrafo->dato= num; if( !nodo ) return Agrafo; else nodo->sig= Agrafo; return Agrafo; }
  • 10. insertar( Agrafo, Agrafo->sig, num ); return nodo;} int enlazarfull( grafo *nodo ) { int i; int vacio; if( !nodo->sig )return 0; for( i=0;i<vacio(nodo);i++ ) nodo->grafo[i]= NULL; return 1;} void main() { char op='A'; int val; int i; while(op!='S' ) {clrscr(); cout<<&quot; [N].- Nuevo Nodo.&quot; ; cout<<&quot; [E].- Menu Enlazes.&quot;; cout<<&quot; [V].- Ver Grafo.&quot;; cout<<&quot; [S].- Salir.&quot;; cout<<&quot; Digite Opcion: [ ] &quot;; cin>>op;
  • 11. switch(op) { case 'N': cout<<&quot; Numero: &quot;; cin>>(&quot;&i&quot;,&val); Pgrafo= insertar( Pgrafo, Pgrafo, val ); break; case 'E': enlazarfull(Pgrafo); break; case 'V': break; } } cout<<&quot; Pulsa una tecla para salir...&quot;; getch(); return 0; }
  • 12. GRACIAS TOTALES, nos vemos en el bingo