"Hombres y mujeres para los demás"

Solución del 2do parcial EDD

1. Existen tres tipos especialers de listas lineales simples las cuales son: 1)Listas Ordenadas, 2)Pilas 3)Colas.

2.Cuáles son los pasos generales que se usan al insertar un nodo en una lista (sin tomar en cuenta la búsqueda): 1)Crear un bloque de memoria temporal, 2)Verificar que no falle la asignación de memoria 3)Colocar los datos en el nuevo nodo 4)Conectar el nodo a la lista 5)Conectar la lista al nodo.

3.Existen tres clases de ordenamiento interno las cuales son: 1)Inserción 2)Selección 3)Intercambio.

4.Describa al menos dos desventajas al utilizar listas doblemente enlazadas contra utilizar listas simples: 1)Código más largo 2)Código más complejo 3)Mayor consumo de memoria 4)Mayor ineficiencia.

5.Cuantos bytes a lo sumo debe tener la sección de datos de un nodo, en una lista doblemente enlazada, para que los intercambios se puedan hacer por contenido y no por posición: 18 bytes.
6.Nos dan dos algoritmos: uno denota un comportamiento natural y otro denota un comportamiento antinatural, ¿Cúal de estos algoritmos utilizaría para ordenar una colección completamente desordenada de valores, si todos los demás criterios de comparación resultasen iguales? El que tiene comportamiento antinatural.

Problema 1
int eliminaNulas(Nodo *L){
    Nodo *Q=L, *temp=NULL;
    int cont=0;
    while(Q->sig!=L){
        if(Q->sig->nombre[0]=='\0'){
            cont++;
            temp=Q->sig;
            temp->sig->ant=temp->ant;
            temp->ant->sig=temp->sig;
            free(temp);
        }
        else Q=Q->sig;
    }
    return cont;
}
Problema 2
void mostrar(Nodo *L,char car){
    Nodo *Q=L;
    int band=0;
    while(Q->ant!=L){
        if(Q->ant->nombre[0]<car) break;
        if(Q->ant->nombre[0]==car){
            printf("%s\n",Q->ant->nombre);
            if(!band) band=1;
        }
        Q=Q->ant;
    }
    if(!band) printf("No hay nombres que empiecen con ese caracter\n");
}

No hay comentarios:

Publicar un comentario