Está en la página 1de 4

#include <conio.

h> #include <iostream> using namespace std; void Recorrido(char Info[8][2],int Indice[8],int Inicio); int main() { char Info[8][2]={{"U"},{"S"},{" "},{"M"},{" "},{"N"},{" "},{"M"}}; int Indice[8]={5,7,6,1,-9,3,-9,4}; int Inicio=0; cout<<"El Recorrido es:\n"; Recorrido(Info,Indice,Inicio); getch(); } void Recorrido(char Info[8][2],int Indice[8],int Inicio) { int Apuntador=Inicio; while(Apuntador!=-9) { cout<<Info[Apuntador]; Apuntador=Indice[Apuntador]; }
Bsqueda Definicin: La Bsqueda su objetivo es encontrar un dato en el arreglo Info, si lo encuentra lo desplegara en la pantalla, si no lo encuentra no desplegara nada ya que el dato no se encuentra enel arreglo Info. Explicacin: Apuntador toma el valor de Inicio, despus ve si la condicin cumple para efectuar un Ciclo mientras Apuntador sea diferente de 0, si cumple lo que hace a continuacin es la comparacin de Elemento (El dato que vamos a buscar) con Info[Apuntador], cuando lo encuentre lo despliega y sale del mtodo. Si no, regresa el valor de Apuntador para as saber que no se encontr el dato. Algoritmo: Recorrido(Inicio, Info, Indice, Elemento) Apuntador - Inicio Repetir mientras Apuntador Nill Si Elemento = Info[Apuntador] entonces:

Imprimir Info[Apuntador] Regresa Apuntador Apuntador - Indice[Apuntador] Fin del ciclo Regresar Apuntador

Insercin al Principio Definicin: La Insercin al Principio bsicamente busca si existe algn lugar disponible en el arreglo Info y lo agrega como primer Nodo si es que es posible. Explicacin: Hace una comparacin para ver si es posible insertar otro Elemento al arreglo Info, para esto checa si Disp es Diferente de Nulo. Si no cumple con la condicin se desplegar Sobre Carga ya que no se puede insertar un Nuevo Elemento. Si es cierto Apuntador toma el valor de Inicio, Disp cambia a Indice[Disp] ya que el primer Disp tomara el valor del Nuevo Elemento, despus de esto solo copia la informacin de Elemento al arreglo Info en la posicin que guarda Apuntador, Indice[Apuntador] toma el valor de Inicio y finalmente Inicio toma el valor de Apuntador. Algoritmo:

InsPr(Inicio, Disp, Info, Indice, Elemento) Si Disp Nill entonces: Apuntador - Disp Disp - Indice[Disp] Info[Apuntador] - Elemento Indice[Apuntador] - Inicio Inicio - Apuntador Si no: Imprimir Sobre Carga Salir

Insercin despus de UN Nodo Determinado Definicin: La Insercin despus de un Nodo Determinado bsicamente hace lo mismo que la insercin al principio, la nica diferencia es que este recibe la posicin del nodo en la que ser Insertada. Este Algoritmo se usa para Insercin Ordenada que mas adelante explicaremos. Explicacin: Primero confirma que sea posible insertar el Dato, si no es posible solo desplegara Sobre Carga. Si es posible insertar un dato nuevo lo posiciona en la primer posicin Disponible en el arreglo Info, despus compara la Nueva Posicin (Npos) que le mandamos con Nill si cumple la condicin el dato es insertado en la primer posicin, de otra forma se posicionara en la posicin que guarde Npos. Algoritmo:
InsNd(Inicio, Disp, Info, Indice, Elemento, Npos)

Si Disp Nill entonces: Apuntador - Disp Disp - Indice[Disp] Info [Apuntador] - Elemento Si Npos = Nill entonces: Indice[Apuntador] - Inicio Inicio - Apuntador Si no: Indice[Apuntador] - Indice[Npos] Indice[Npos] - Apuntador Si no: Imprimir Sobre Carga Salir

Insercin Ordenada Definicin: La Insercin Ordenada busca la posicin en donde ser Insertado el Elemento y la posicin anterior donde ser Insertado, despus de encontrar la posicin en la que ser Insertado el Elemento nos regresa ese valor y lo mandamos al mtodo de la Insercin despus de un Nodo. Explicacin: En esta ocasin usaremos dos variables para determinar la posicin deseada, comparamos si Inicio es igual a Nill si Elemento es menor al dato que se encuentra en Info[Inicio], si alguna de las dos cumple regresamos Nill, de esta manera Indicamos que el Elemento ser el primero de todo el Arreglo Info, si no es as Temp tomara el valor de Inicio y Temp2 de la posicin que le sigue a Inicio. Hace un ciclo hasta encontrar la posicin en donde se insertara el Nuevo Elemento y va movindose de posicin con las variables Temp y Temp2 para as determinar que posicin debe de regresar. Algoritmo:
InsOrd(Inicio, Info, Indice, Elemento) Si Inicio = Nill Elemento < Info[Inicio] entonces: Regresar Nill Temp - Inicio Temp2 - Indice[Inicio] Repetir mientras Temp2 Nill Si Elemento < Info[Temp2] Regresar Temp Temp - Temp2 Temp2 - Indice[Temp2] Regresar Temp

Eliminacin por Bsqueda Definicin:

La Eliminacin simplemente cambia los nodos para que el dato que se desea eliminar sea el primer disponible, de esta forma ya no estar en el Arreglo de Info. Explicacin: Lo primero que hace es ver si existe algn dato en la lista para eliminar, si Inicio es igual a Nill entonces solo desplegara Imposible Eliminar. De otra formas cambiar de Posicin enPosicin hasta encontrar el Elemento que sea desea Eliminar con ayudar de dos variables que guardan la Posicin actual y la anterior en donde se encuentre el dato. Ya que loencuentra cambia ese dato como la primera posicin Disponible y lo apunta al siguiente nodo disponible. Si no encuentra el dato simplemente desplegara Dato no encontrado Algoritmo:
EliBusq(Inicio, Info, Indice, Elemento) Temp - Inicio Si Temp = Nill Imprimir Lista Vacia Imposible Eliminar y Retornar Repetir mientras Temp Nill Si Elemento = Info[Temp] entonces: Si Temp = Inicio entonces: Inicio - Indice[Inicio] Si no: Indice[Temp2] - Indice[Temp] Indice[Temp] Disp Disp - Temp Recorrido(Inicio, Info, Indice) y Retornar Si no: Temp2 - Temp Temp - Indice[Temp] Imprimir Dato no encontrado Imposible Eliminar y Retornar