

Inserción después de un Nodo Determinado
Definición:
La Inserción después de un Nodo Determinado básicamente hace lo mismo que la inserción al principio, la única diferencia es que este recibe la posición del nodo en la que será Insertada. Este Algoritmo se usa para Inserción Ordenada que mas adelante explicaremos.
Detalle:
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 posición Disponible en el arreglo Info, después compara la Nueva Posición (Npos) que le mandamos con Nill si cumple la condición el dato es insertado en la primer posición, de otra forma se posicionara en la posición que guarde Npos.
Algoritmo:
InsOrd(Inicio, Disp, Info, Indice, Elemento, Npos)
Si Disp ≠ Nill entonces:
Apuntador → Disp
Disp → Indice[Disp]
Info [Apuntador] → Elemento
Si Npos = Nill entonces:
Indice[Apuntador] → Indice[Inicio]
Indice[Inicio] → Apuntador
Si no:
Indice[Apuntador] → Indice[Npos]
Indice[Npos] → Apuntador
Si no:
Imprimir “Sobre Carga”
Salir
Inserción Ordenada
Definición:
La Inserción Ordenada busca la posición en donde será Insertado el Elemento y la posición anterior donde será Insertado, después de encontrar la posición en la que será Insertado el Elemento nos regresa ese valor y lo mandamos al método de la Inserción después de un Nodo.
Detalle:
En esta ocasión usaremos dos variables para determinar la posición deseada, comparamos si Indice[Inicio] es igual a Inicio ó 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 posición que le sigue a Inicio. Hace un ciclo hasta encontrar la posición en donde se insertara el Nuevo Elemento y va moviéndose de posición con las variables Temp y Temp2 para así determinar que posición debe de regresar.
Algoritmo:
InsOrd(Inicio, Info, Indice, Elemento)
Si Inicio = Indice[Inicio] ó Elemento <>
Regresar Nill
Temp → Indice[Inicio]
Temp2 → Indice[Temp]
Repetir mientras Temp2 ≠ Inicio
Si Elemento <>
Regresar Temp
Temp → Temp2
Temp2 → Indice[Temp2]
Regresar Temp
#include
#include
#include
void Recorrido(char Info[8][10],int Indice[8],int Inicio,int Disp);
void InsPr(char Info[8][10],int Indice[8],int Inicio,int Disp,char Elemento[10]);
void InsOrd(char Info[8][10],int Indice[8],int Inicio,int Disp,char Elemento[10]);
void main()
{
char Info[8][10]={{"Cabeza"},{"e"},{" "},{"c"},{"i"},{"a"},{" "},{"g"}};
char Elemento[10];
int Indice[8]={5,7,6,1,0,3,-999,4};
int Inicio=0,Disp=2,Res;
cout<<"Lista Original\n"; Recorrido(Info,Indice,Inicio,Disp); cout<<"Que Numero deseas Insertar?"; gets(Elemento); InsOrd(Info,Indice,Inicio,Disp,Elemento); getch(); } void Recorrido(char Info[8][10],int Indice[8],int Inicio,int Disp) { int Apuntador=Indice[Inicio]; while(Apuntador!=Inicio) { cout<< <0) temp="Temp2;" temp2="Indice[Temp2];" disp="Indice[Disp];">
No hay comentarios:
Publicar un comentario