Red de conocimiento informático - Computadora portátil - código fuente de la pila c

código fuente de la pila c

Hola:

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>

*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