Algoritmo para crear un nodo
rene.cordero1 de Abril de 2015
709 Palabras (3 Páginas)282 Visitas
PRACTICA N°4
Desarrolle un caso práctico y utilice las clases que ha declarado anteriormente.
____________________________________________________________________________________________
Desarrollar un algoritmo para crear un nodo e insertar aristas este algoritmo insertara datos de ciertas ciudades y distancias que vienen a ser las Aristas, la distancia es igual que el peso. Sabemos que Arequipa es 1, Ayacucho es 2, Apurimac es 3, Tacna es 4 y Lima es 5.
Este es un Grafo No Dirigido por lo cual no usariamos El Algoritmo de Dijkstra porque no tendriamos una ruta corta.
1(Arequipa)-----------2(Ayacucho)
| \78 / |
| \ 32/ |
| \ / |
34| 5(Lima) |55
| / \ |
| /44 \ |
| / 93\ |
3(Apurimac)----------4(Tacna)
61
CLASE Nodo:
__________
ATRIBUTOS: // Atributos Info de tipo entero y Siguiente de tipo Nodo.
- info : Entero
- sig : Nodo
- visitado = Falso
________
METODOS:
+ Nodo(info : TipoDeDato) : Constructor con un parametro
info <- info
sig <- nulo
FNodo
+ Nodo(info : TipoDeDato, sig : Nodo) : Constructor con dos parametros
info <- info
sig <- sig
FNodo
+ modificarSig(x)
sig <- x
Fmodificar
+ modificarInfo(x)
sig <- x
FmodificarInfo
+ accesarSig()
retornar sig
FaccesarSig
+ accesarInfo()
retornar info
FaccesarInfo
CLASE Lista:
ATRIBUTOS: //Atributo Inicio de tipo Nodo.
- inicio : Nodo
METODOS:
+ Lista() : Constructor
inicio <- nulo
FLista
+ esVacia()
inicio <- nulo
FesVacia
+ insertar(x : Entero)
nuevo : Nodo
nuevo <- nuevo Nodo(x)
nuevo.modificarSig(inicio)
inicio <- nuevo
Finsertar
+ eliminar(x : Entero)
ptr : Nodo
si (inicio<>nulo) entonces
ptr <- inicio
inicio <- inicio.accesarSig()
ptr <- nulo
fsi
Feliminar
+ busqueda(x : Entero)
ptr : Nodo
encontrado <- falso
repetir mientras (ptr <> nulo y encontrado == falso) hacer
ptr <- ptr.accesarSig()
si (x == ptr.accesarInfo()) entonces
encontrado <- verdadero
ptr.accesarInfo()
Fsi
Fmientras
Fbusqueda
FCLASELista
CLASE Grafo:
_________
ATRIBUTO:
- dirigido : Logico // indica si es dirigido o no
- maxNodos : Entero // tamaño maximo
- numVertices : Entero // numero de vértices del grafo
- listaAdyac [] : Lista // vector de listas de adyacencias del grafo
________
METODOS:
+ Grafo(d : Logico) : Constructor con parametro que indica si es dirigido o no
maxNodos <- numVertices <- 0
dirigido <- d
FGrafo
+ Grafo (n : Entero, d : Logico) : Constructor con dos parametros que indican el numero de vertices del grafo y el valor para el campo dirigido.
dirigido <- d
maxNodos <- n
numVertices <-
...