Unidad
Mérida
|
Sesión |
Tarea |
1. Pilas * Implementando una pila con memoria estática: pila_mem_estatica.cpp * Implementando una pila con memoria dinámica: pila_doble_apuntador.cpp * Comprobar sintaxis de paréntesis, corchetes y llaves en C: comprobar_sintaxis.cpp (Terminar el programa) |
tarea_1.pdf |
2. Colas * Implementando una cola con memoria estática: cola_memoria_estatica.cpp * Implementando una cola con memoria dinámica: cola_memoria_dinamica.cpp |
tarea_2.pdf |
3. Listas * Implementando una lista con memoria dinámica: lista_enlazada.cpp * Implementando una lista circular: lista_circular.cpp * Implementando el juego de la papa se quema...: lista_circular_papa_se_quema.cpp |
tarea_3.pdf |
4. Lista
doblemente enlazada * Implementando una lista doblemente enlazada: lista_doble_liga.cpp (Terminar el programa) * Implementando una lista enlazada ordenada: lista_enlazada_ordenada.cpp (Terminar el programa) |
tarea_4.pdf |
5. Árboles 6. Árboles Binarios de Búsqueda * Implementando un árbol binario de búsqueda: arbol_binario_busqueda.cpp (Terminar el programa) * Exposiciones: a) Árboles AVL (Tarea_6: Insertar y eliminar elementos en un árbol AVL) b) Árboles Rojo-Negro c) Árboles AA d) Árboles B e) Árboles B+ |
tarea_5.jpg |
7. Tablas hash * Implementando una tabla hash: tabla_hash.cpp (Terminar el programa) |
tarea_7.pdf |
8. Grafos Grafos no dirigidos |
tarea_8.pdf |
9. Algoritmos
de ordenamiento |
tarea_9.pdf |
10. Cómputo
paralelo |
Num. Ctrl. |
T1 |
Comentarios |
T2 |
Comentarios |
T3 |
Comentarios |
T4 |
Comentarios |
T5 |
Comentarios |
T6 |
Comentarios |
T7 |
Comentarios |
T8 |
Comentarios |
T9 |
Comentarios |
lt26i |
9.7 |
T1_9 |
10 |
10 |
T3_3 |
10 |
0 |
T5_1 |
0 |
T1_17 | 0 |
T1_17 | 0 |
T1_17 |
0 |
T1_17 |
||
99991111 |
5 |
T1_1, T1_5, T1_6,T1_7,T1_8 |
1.5 |
T2_2, T1_8, T2_5, T1_16, T2_4 |
9 |
T3_10, T2_4 |
0 | T1_17 |
10 |
2.8 |
T6_1 |
0 |
T1_17 | 0 |
T1_17 | 9 |
T6_1 |
|
12216300 |
5.5 |
T1_1, T1_5, T1_10, T1_11, T1_12, T1_13 |
7 |
T2_2 |
7.5 |
T3_4, T3_5, T3_6 |
6 |
T4_3, T4_2 |
10 |
7.8 |
T6_1 | 3.5 |
T7_4, T1_5 |
8.0 |
T6_1 |
9 |
T6_2 | |
A07001582 |
6 |
T1_1, T1_2, T1_3, T1_4 |
2.5 |
T1_5, T2_4, T2_2, T2_1, T2_6 |
4.5 |
T1_5, T3_1, T3_2, T2_2 |
0 | T1_17 |
10 |
5.2 |
T6_2 | 6.0 |
T7_1, T7_2 |
0 |
T1_17 | 9 |
T6_1 |
|
09204211 |
5 |
T1_1, T1_2, T1_3, T1_8 |
0 |
T1_17 |
6 |
T1_5, T3_7, T3_8, T3_4, T3_6 |
0 | T1_17 |
10 |
7.8 |
T6_1 | 6.0 |
T7_1, T7_2 |
0 |
T1_17 | 9.5 |
T6_1 |
|
11216323 |
6 |
T1_1, T1_8, T1_16 |
6.5 |
T1_8, T2_4 |
7.5 |
T3_4, T3_9, T2_4 |
0 | T1_17 |
10 |
9.6 |
T6_2 | 0 |
T1_17 | 0 |
T1_17 | 10 |
||
11216326 |
2.5 |
T1_14, T1_8, T1_7, T1_15, T1_5 |
0 |
T1_17 |
10 |
6 |
T4_1, T4_2 |
10 |
6.5 |
T6_1 | 7.0 |
T7_1, T7_3 |
0 |
T1_17 | 10 |
|||
08000946 |
0 |
T1_17 |
6 |
T2_1, T2_2 |
0 |
T1_17 |
0 | T1_17 |
0 |
T5_1 |
0 |
T1_17 | 0 |
T1_17 | 0 |
T1_17 | 10 |
|
12345678 |
1 |
T1_1, T2_2, T1_18, T1_16, T2_4 |
0.5 |
T1_14, T2_7, T1_8, T1_16, T2_4 |
0 | T1_17 |
0 | T1_17 |
10 |
0.9 |
T6_2 | 0 |
T1_17 | 0 |
T1_17 | 0 |
T1_17 | |
a11216316 |
2.8 |
T1_19,T1_8, T2_4 |
4 |
T1_8, T2_4 |
4.9 |
T3_11, T3_4, T3_12, T2_4 |
0 |
T1_17 |
0 |
T5_1 |
0 |
T1_17 | 6 |
T7_5, T7_6, T7_7 |
5.8 |
T6_2 | 10 |
while(precedencia(inf[i], pila[ptr]) < 0 &&
pila[ptr]!='(' && ptr>0)
Hay
que cuidar el orden de las comparaciones, en este caso puede
quedar de la siguiente manera:
while(ptr>0 && pila[ptr]!='(' &&
precedencia(inf[i], pila[ptr]) < 0)
while(aux_bor!=NULL && (aux_bor->valor)<y)
Tu
variable aux_bor nunca va a apuntar a NULL, por lo tanto, si
no tienes ningún valor en la lista que sea mayor o igual que
"y" entonces tu programa entrará en un ciclo infinito…
Nodo
*nuevo, *aux;
nuevo
= (Nodo *) malloc(sizeof(Nodo));
nuevo->sig=aux->sig; //No puedes asignar a
nuevo->sig una dirección que no has reservado o
inicializado (aux->sig no existe)
Nodo
*temp=inicio;
Nodo
*aux, *nuevo;
int
c, e;
while(temp!=NULL){
c=temp->coe;
e=temp->exp;
aux->coe=c*e; //aquí aux no ha
sido inicializado o asignado a una localidad de memoria,
entonces no es posible asignarle algo en coe
Nota: en tu función insertarInicio, primero
reservas memoria con malloc y luego asignas los valores coe y
exp (aquí sería algo similar)
Ejemplo: Suponga que se han dado de alta estos elementos
Tabla
Hash:
<HELF70> <DANIEL> <1500.00> <PINOS>
<--> <--> <--> <-->
<HELF40> <FRANCISCO> <1000.00>
<AMERICAS>--><HELF90> <PATY>
<5000.00> <OAXACA>--><HELF04>
<HIGINIO> <2000.00> <CHUBURNA>
<HELF50> <NAYELI> <4000.00> <AME>
<--> <--> <--> <-->
Al eliminar el elemento con IFE=HELF40,
pasa lo siguiente:
Tabla
Hash:
<HELF70> <DANIEL> <5000.00> <PINOS>
<--> <--> <--> <-->
<HELF90> <PATY> <5000.00>
<OAXACA>--><HELF90>
<PATY> <5000.00> <OAXACA>--><HELF04>
<HIGINIO> <2000.00> <CHUBURNA>
<HELF50> <NAYELI> <4000.00> <AME>
<--> <--> <--> <-->
Ahora, el elemento con IFE=HELF90, se repite tanto en la tabla como en su respectiva lista
En
tu programa solo basta con eliminar el nodo de la lista
después de haber copiado la información, es decir, poner lo
siguiente:
elimina_en_lista(&Tabla[posicion].lista,
Tabla[posicion].lista->IFE);
Presentación: Jueves 27/Noviembre
Bibliografía: