código fuente de la pila c
Debes estar aprendiendo estructuras de datos.
En primer lugar, cuando aprendes pila, debes comprender la definición de pila y qué es, es decir, comprender su pensamiento.
Por fin reflejado en el código.
La pila es FIFO, pero en realidad está controlada por código.
De hecho, puedes dejar que sea el primero en entrar y el primero en salir.
Solo necesitas entender sus principios.
Código, puedes entenderlo como un lenguaje que habla con la informática.
No creas que es tan complicado.
Al igual que hablar, solo necesitas saber lo que quieres decir (algoritmo) y no tienes que entender deliberadamente cómo decirlo (gramática).
Dame el código que escribiste antes, con respecto a la pila, la pila secuencial, que en realidad es una pila en cadena.
/*?Estructura de datos-pila? */
/*?Los detalles de la excepción aún no se han procesado*/
#Contains? ltiostream gt
#¿Contiene? ltstdlib.h gt
#¿Incluir? ltmalloc.h gt
#¿Definición? len_chu_shi? 50?//Tamaño del espacio inicial
#Definición? len_Zeng_Jia? 10//Añadir espacio extra
#Definición? ¿Bueno? 0?//Correcto
#Definición? ¿Se acabó? -2?//
#Definición? ¿error? -1?//
¿Usar? ¿Espacio de nombres? std
typedef? int? elem _ type//Tipo de elemento
typedef? int? function _ type//Tipo de función
typedef? estructura? Zhan (chino)
{
elem_type? * top//Parte superior de la pila
elem_type? *base;? //parte inferior de la pila
int? len? //Tamaño del espacio actual
}Zhan; //Estructura de la pila
Tipo_función? Init_zhan(zhan?*exam); //Pila de inicialización
Tipo_función? Get_top(Zhan?*examination,elem_type?*e);//Obtener el elemento superior de la pila
Function_type? Add_top(Zhan?*examination,elem_type?*e);//Agregar el elemento superior de la pila
Function_type? Delete_top(Zhan?*examination,?elem_type?*e); //Eliminar el elemento superior de la pila
int? main(int? argc, char? *argv[])
{
Zhan? *¿Ejemplo? =?(Zhan?*)malloc(sizeof(Zhan));
Init_zhan(ejemplo);
¿Regresión? OK;
}
¿Tipo_función? Init_zhan(zhan?*Examen)
{
Examen - gt; =?(elem_type?*)malloc(len_Chu_Shi *sizeof(elem_type));
If (!exam-gt;Base) //La asignación falló.
Salir (final);
Examen->arriba? =?examinación-gt;base;
examen-gt;carril.
=?len_chu_shi
¿Regresar? OK;
}// - fin
¿Tipo_función? Get_top(zhan?*examination,elem_type?*e)
{
if (!exam-gt; base)
Salir(end); p>p>
*e? =?*(Exam->top?-?1);//No puede usar el operador de decremento, que cambiará el valor del puntero superior en la pila.
¿Volver? OK;
}// - fin
¿Tipo_función? Add_top(zhan?*examen,elem_type?*e)
{
if (examen-gt; lem. lt=?examen-gt;top?-?examen-gt; Base)//Pienso personalmente, ¿y si? Ya"
exam-gt;base?=?(elem_type?*)realloc(exam-gt;base,(exam->len.?len_Zeng_Jia)* sizeof(elem_type ; )? =?* e ;? // Primero cambie el contenido del puntero de la pila y luego aumente el puntero de la pila usted mismo
Exam-gt;Return OK;
}// - end
Function_type? Delete_top(Zhan?*examination,?elem_type?*e)
{
If (! exam - gt; Base) // pila vacía
exit (end);
*e? =?*( - exam - gt ; Top); // Disminuye el puntero superior primero y luego obtiene el contenido de el puntero superior
Regresar OK;
}// - fin