Insertar
/* inserción en una lista vacía */
int ins_en_lista_vacia (Lista * lista, char *dato){
Element *nuevo_elemento;
if ((nuevo_elemento = (Element *) malloc
(sizeof (Element))) == NULL)
return -1;
if ((nuevo _elemento->dato = (char *) malloc
(50 * sizeof (char)))
== NULL)
return -1;
strcpy (nuevo_elemento->dato,
dato);
nuevo_elemento->siguiente =
NULL;
lista->inicio = nuevo_elemento;
lista->fin = nuevo_elemento;
lista->tamaño++;
return 0;
}
1 Inicio
2 Declarar el elemento a insertar
3
Asignar un espacio de memoria para el nuevo elemento
4 Asignar nuevo_elemento->datos
5 Asignar
el valor NULL del nuevo_elemento al siguiente
6 Asignar el valor del nuevo elemento a lista
-> inicio
7 Asignar el valor del nuevo elemento a lista
-> fin
8 Se actualiza el tamaño
9 Fin
Eliminar
/* eliminación al inicio de la lista */
int sup_inicio (Lista * lista){
if (lista->tamaño == 0)
return -1;
Element *sup_elemento;
sup_element = lista->inicio;
lista->inicio = lista->inicio->siguiente;
if (lista->tamaño == 1)
lista->fin = NULL;
free (sup_elemento->dato);
free (sup_elemento);
lista->tamaño--;
return 0;
}
1 incio
2 Se declara el apuntador sup_inicio para guardar la dirección que se va a eliminar.
3 Si lista -> tamaño es exactamente igual a cero se retornara menos uno.
4 Declarar el apuntador sup_elemento
5 Asignar el valor de sup_element a lista -> inicio.
6 Asignar el valor de lista -> incio a lista -> inicio -> siguiente.
7 Si lista -> tamaño es exactamente igual a uno entonces lista -> fin se le asignara el valor de NULL.
8 Liberar la memoria ocupada por el sup_elemento -> dato.
9 Se actualiza el tamaño de la lista.
Eliminar II
void
borrar(void)
{
char* q;
q=crecup();
if(q==NULL)
{
printf("No hay datosn");
return;
}
printf("Este es el dato recuperado y borrado: Dato numero %d:
%s\n",rpos+1,q);
free (q);
}
1 Inicio
2 Declarar una variable
3 La variable es exactamente igual a NULL entonces imprimir no hay datos
4 Imprimir el dato borrado
5 Liberar el espacio de memoria de la variable
Buscar
int buscar(struct nodo *p, int valor)
{
if(p==NULL) return(FALSE);
do{
if(p->dato == valor) return(TRUE);
else p = p->sig;
} while(p != NULL);
return(FALSE);
}
**Nota antes tenemos que definir TRUE Y FALSE
1 Inicio
2 Si valor esta dentro
de la lista retorna TRUE en caso
contrario dice FALSE
3 Fin
No hay comentarios:
Publicar un comentario