¿Qué es una pila?

Pregunta 1: ¿Qué es una pila? Montón y pila son dos conceptos diferentes. El sistema no libera la memoria asignada en el montón, sino que la asigna dinámicamente. La memoria asignada en la pila es liberada automáticamente por el sistema, que se asigna estáticamente. La pila de tiempo de ejecución se llama pila. La pila se asigna desde la dirección alta de la memoria a la dirección baja, y lo contrario ocurre con el montón. La memoria asignada por malloc o new se asigna desde el montón. La memoria asignada desde el montón debe ser liberada y liberada por el propio programador. De lo contrario, esta memoria estará ocupada y no se liberará, lo que provocará una "pérdida de memoria". Esto hará que el sistema tenga cada vez menos memoria asignable, lo que provocará que el sistema falle. La pila es una estructura de datos que realiza el algoritmo "LIFO". Imaginemos un tubo de bambú de diámetro muy pequeño, abierto por un extremo y cerrado por el otro. Hay varias bolas numeradas, de diámetro ligeramente menor que el tubo de bambú. Ahora que ponemos bolas de diferentes números en el tubo de bambú, podemos encontrar una regla: la bola que se mete primero sólo se puede sacar después y, a la inversa, la bola que se mete en último lugar se puede sacar primero. Así que "el primero en entrar, el último en salir" es la característica de esta estructura. La pila es una estructura de datos de este tipo. Significa abrir un área de almacenamiento en la memoria y los datos se almacenan en esta área uno por uno (es decir, "push-push"). Hay un puntero de dirección que siempre apunta a la unidad de datos donde se encuentran los últimos datos ingresados ​​en la pila. El registro que almacena este puntero de dirección se llama puntero de pila. La ubicación donde se colocan los datos por primera vez se denomina "parte inferior de la pila". Los datos se almacenan uno por uno, este proceso se llama "push". Durante el proceso de inserción de la pila, cada vez que se inserta un dato en la pila, se coloca en la siguiente celda conectada a la celda anterior y la dirección en el puntero de la pila se incrementa automáticamente en 1. Al leer estos datos, los datos se leen de acuerdo con la dirección en el indicador de pila y el número de dirección en el indicador de pila se reduce automáticamente en 1. Este proceso se llama "expulsión". Esto implementa el principio de último en entrar, primero en salir. El registro de pila es el registro que almacena la pila.

Pregunta 2: ¿Cuál es el concepto de pila? La pila es un espacio en la memoria abierto para almacenar datos.

Su dirección de expansión es desde la dirección grande de la memoria a la dirección pequeña.

Se utiliza para almacenar los parámetros pasados ​​al llamar a funciones.

Las variables estáticas se almacenan en el área de memoria estática del programa. Al final del programa, más cercano al frente.

Pregunta 3: ¿Qué es una pila y cuál es su función? El apilamiento es un método de caracterización común en las novelas, generalmente utilizado por personajes secundarios. Por ejemplo, un espadachín es muy bueno y dice ser invencible. Sin embargo, en una pelea directa con él, un pequeño lo derrotó por cualquier medio, mostrando su increíble fuerza. Es la acumulación de este pequeño, para transformarlo en el prestigio de este personaje a través del tremendo poder de los demás. Esto es una pila

Pregunta 4: ¿Cuál es el edificio antiguo para apilar elementos? ¿Libro de Canciones? Hay un dicho en Xiaoya llamado "Qianqiancang", que muestra que la arquitectura de almacén tiene una larga historia. Los almacenes modernos se centran más en los ingresos que en el almacenamiento. Ésta es la diferencia con el antiguo almacén. Por lo tanto, los almacenes modernos conceden gran importancia a la disposición razonable de los pasillos, la distribución de mercancías y la altura máxima de apilamiento en términos de rotación del transporte, métodos de almacenamiento e instalaciones de construcción, y configuran mecanizaciones rentables e instalaciones de acceso automatizadas para mejorar la capacidad de almacenamiento y eficiencia del trabajo.

Un almacén consiste en un almacén para almacenar artículos y medios de transporte (como grúas, ascensores, toboganes, etc.). ), tuberías y equipos de transporte dentro y fuera del almacén, instalaciones de protección contra incendios, salas de gestión, etc. Según la forma de los productos almacenados, los almacenes se pueden dividir en almacenes para almacenar productos sólidos, productos líquidos, productos gaseosos y productos en polvo, según la naturaleza de los productos almacenados, se pueden dividir en almacenes para almacenar materias primas, semi; -productos terminados y productos terminados según la forma del edificio, se pueden dividir en silos de una sola capa, silos multicapa y silos cilíndricos.

Los almacenes monocapa son adecuados para almacenar materiales metálicos, materiales de construcción, minerales, productos mecánicos, vehículos, petróleo, materias primas químicas, madera y sus productos. Los almacenes de las terminales de transporte acuático, los almacenes de transporte ferroviario y los almacenes de transporte aéreo suelen utilizar edificios de un solo piso para acelerar la carga y descarga. El diseño general del almacén de un solo piso requiere que las carreteras estén conectadas y que los automóviles cargados y los montacargas puedan entrar y salir directamente del almacén. Este tipo de almacén utiliza generalmente estructuras prefabricadas de hormigón armado con una red de columnas de 6m y luces de 12m, 15m, 18m, 24m, 30m y 36m. Los almacenes con grandes cargas de suelo deben tener una gran luz. La capacidad de elevación de la grúa en el almacén se determina en función del peso máximo de la mercancía almacenada. Se pueden usar grúas monorraíl o grúas monorraíl para levantar artículos de menos de 5 toneladas, y se pueden usar grúas puente para levantar artículos de más de 5 toneladas. Los almacenes deben protegerse de la humedad. Si se utiliza para almacenar materiales inflamables, se debe utilizar un revestimiento de piso flexible para evitar chispas. Los techos y paredes deben ser impermeables.

Los almacenes multicapa generalmente almacenan grandes almacenes, equipos electrónicos, alimentos, productos de caucho, medicamentos, equipos médicos, productos químicos, papelería, instrumentos, etc. Debe existir un espacio de carga y descarga en el piso subterráneo, y los vehículos de carga y descarga pueden ingresar directamente. Los montacargas de 1,5 a 5 toneladas se utilizan generalmente para el transporte vertical de mercancías. Se debe tener en cuenta que el carro de carga o la carretilla elevadora pueden entrar en la sala de máquinas del ascensor para acelerar la carga y descarga. Los toboganes se utilizan comúnmente para descargar mercancías en almacenes de varios pisos. La mayoría de los toboganes son estructuras de hormigón armado con terrazo encerado como capa superficial; también se pueden utilizar esqueletos metálicos y capas superficiales de placas de acero, pero se debe evitar que las placas de acero se oxiden o se deben utilizar placas de acero inoxidable como capa superficial. Si la unidad de carga de un almacén de varias plantas es superior a 500 kg, se puede utilizar un suelo plano. Generalmente los almacenes no están pintados, pero el lomo puede ser blanco; los grandes almacenes, las tiendas farmacéuticas, de alimentos y de ropa deben pintarse para evitar que los insectos se escondan en las grietas. El almacenamiento y la entrega de "almacenes tridimensionales" en almacenes multicapa se mecanizan mediante ordenadores electrónicos.

Este tipo de almacén ocupa un área pequeña y ahorra mano de obra, pero la mercancía almacenada tiene un alcance determinado.

Los silos cilíndricos generalmente almacenan cemento a granel, escoria seca, cenizas volantes, cereales a granel, petróleo, gas y otros gases. El diseño arquitectónico del almacén cilíndrico se determina según el tipo de mercancía almacenada y el método de carga y descarga. La parte superior, las paredes y el fondo del depósito deben ser impermeables y resistentes a la humedad, y debe haber un dispositivo de vacío en la parte superior del depósito. Para facilitar el mantenimiento diario, es necesario instalar orificios para colgar, bocas de acceso (se proporcionan escaleras en las paredes del almacén), orificios de medición y ganchos. Los almacenes cilíndricos generalmente adoptan estructuras de hormigón armado pretensado coladas in situ y se construyen mediante el método de encofrado deslizante. Tanto el almacenamiento de petróleo como de gas son estructuras metálicas. Preste atención a la ventilación del almacén. Se deben instalar contraventanas en cada pared exterior del almacén y se debe agregar una malla metálica a las contraventanas para evitar que los pájaros vuelen. Los almacenes de mercancías peligrosas, como los que almacenan petróleo (gas) o materias primas químicas, deben protegerse del calor y la humedad. El techo debe estar aislado o diseñado con un techo a prueba de explosiones y deben establecerse zonas ignífugas en las entradas y salidas. El suelo debe ser de materiales que no produzcan chispas, generalmente se puede utilizar suelo asfáltico. Los tanques de almacenamiento de petróleo deben estar equipados con fosos de almacenamiento de petróleo. El almacenamiento de alimentos debe protegerse de hormigas y abejas.

¿Qué significa la pila de preguntas? En el campo de la informática, la pila es un concepto que no se puede ignorar, pero muchas personas, incluso los profesionales de la informática, no saben que la pila son en realidad dos estructuras de datos.

Puntos clave:

Montón: orden aleatorio

Pila: FIFO

La diferencia entre montón y pila

1. Conocimientos previos: asignación de memoria de programas

La memoria que ocupa un programa compilado en c/C++ se divide en las siguientes partes.

1. Pila: asignada y liberada automáticamente por el compilador para almacenar valores de parámetros de funciones, valores de variables locales, etc. Funciona como una pila en una estructura de datos.

2. Montón: generalmente liberado por el programador. Si el programador no lo libera, el sistema operativo puede reciclarlo al final del programa. Tenga en cuenta que la estructura de datos es diferente de la del montón y el método de asignación es similar al de una lista vinculada, jaja.

3. Área global (área estática): las variables globales y las variables estáticas se almacenan juntas en un área, y las variables globales no inicializadas y las variables estáticas no inicializadas están en otra área. área adyacente. -El sistema se libera una vez finalizado el programa.

4. Área constante de texto: aquí es donde se colocan las cadenas constantes. El sistema lo publica una vez finalizado el programa.

5. Área de código de programa: almacena el código binario del cuerpo de la función.

En segundo lugar, el programa de muestra

Esto está escrito por un senior y es muy detallado.

Página principal

int a = 0; área de inicialización global

char * p 1; área global no inicializada

Main()

{

int b;shed

char s[]= ABC;shed

char * p2 shed

char * P3 = 123456; 123456\0 está en el área constante y p3 está en la pila.

Static int c = 0; área de inicialización global (estática)

p 1 =(char *)malloc(10);

p2 =(char * )malloc(20);

Las áreas de asignación de 10 y 20 bytes están en el área del montón.

strcpy(p1, 123456); 123456\0 se coloca en el área constante y el compilador puede usar 123456 señalado por p3 para optimizarlo.

}

2. Conocimiento teórico de montón y pila

2.1 Método de aplicación

Pila:

Por El sistema asigna automáticamente. Por ejemplo, declare una variable local int b en una función; el sistema crea automáticamente espacio para B en la pila.

Montón:

Los programadores deben solicitarlo y especificar el tamaño. Función malloc en lenguaje c.

Por ejemplo, p 1 =(char *)malloc(10);

Usar nuevo operador en C++

Por ejemplo, p2 =(char *) malloc( 10);

Pero tenga en cuenta que p1 y p2 están en la pila.

2.2

Respuesta del sistema después de la aplicación

Pila: Siempre que el espacio restante de la pila sea mayor que el espacio solicitado, el sistema proporcionará memoria para el programa; de lo contrario, informará una excepción de desbordamiento de pila.

Montón: En primer lugar, debes saber que el sistema operativo tiene una lista vinculada de direcciones de memoria libres. Cuando el sistema recibe la aplicación del programa,

recorrerá la lista, encontrará el primer nodo del montón con un espacio mayor que el espacio solicitado, luego eliminará el nodo de la lista de nodos libres y asignará el espacio. del nodo al programa. Además, para la mayoría de los sistemas, el tamaño asignado se registrará en la primera dirección de este espacio de memoria, de modo que la declaración de eliminación en el código pueda liberar correctamente este espacio de memoria. Además, dado que el tamaño del nodo del montón encontrado no es necesariamente exactamente igual al tamaño de la aplicación, el sistema automáticamente colocará la parte sobrante nuevamente en la lista libre.

2.3 Limitaciones en la escala de la aplicación

Pila: en Windows, la pila es una estructura de datos que se extiende a direcciones de orden inferior y áreas de memoria continua. El sistema especifica previamente la dirección de la parte superior de la pila y el tamaño máximo de la pila. En WINDOWS, el tamaño de la pila es 2 M (algunos dicen que es 1 M, que es una constante determinada en el momento de la compilación). Si el espacio de la aplicación excede el espacio restante de la pila, se generará un desbordamiento. Por lo tanto, se puede descargar desde la pila...>;& gt

Pregunta 6: ¿Qué es una pila? La pila es la estructura de datos que implementa el algoritmo LIFO.

Imagínate un tubo de bambú de pequeño diámetro, abierto por un extremo y cerrado por el otro. Hay varias bolas numeradas, de diámetro ligeramente menor que el tubo de bambú. Ahora que ponemos bolas de diferentes números en el tubo de bambú, podemos encontrar una regla: la bola que se mete primero sólo se puede sacar después y, a la inversa, la bola que se mete en último lugar se puede sacar primero. Así que "el primero en entrar, el último en salir" es la característica de esta estructura.

La pila es una estructura de datos de este tipo. Significa abrir un área de almacenamiento en la memoria y los datos se almacenan en esta área uno por uno (es decir, "push-push"). Hay un puntero de dirección que siempre apunta a la unidad de datos donde se encuentran los últimos datos ingresados ​​en la pila. El registro que almacena este puntero de dirección se llama puntero de pila. La ubicación donde se colocan los datos por primera vez se denomina "parte inferior de la pila". Los datos se almacenan uno por uno, este proceso se llama "push". Durante el proceso de inserción de la pila, cada vez que se inserta un dato en la pila, se coloca en la siguiente celda conectada a la celda anterior y la dirección en el puntero de la pila se incrementa en 1. Al leer estos datos, los datos se leen de acuerdo con la dirección en el indicador de pila y el número de dirección en el indicador de pila se reduce automáticamente en 1. Este proceso se llama "expulsión". Esto implementa el principio de último en entrar, primero en salir.

La pila es la estructura de datos más utilizada en los ordenadores. Por ejemplo, las llamadas a funciones se implementan a través de la pila en las computadoras.

La pila se puede almacenar en una matriz o lista vinculada, que se presentará más adelante.

La siguiente es la definición de la estructura de la pila, incluido el puntero superior y la matriz de elementos de datos. Inicialmente, el puntero superior de la pila apunta a -1 y luego, cuando se almacenan los datos, el puntero superior de la pila aumenta en 1. Después de recuperar los datos, el puntero superior de la pila disminuye en 1.

#define MAX_SIZE 100

typedef int DATA _ TYPE

Pila de estructura

{

DATA_TYPE datos[ MAX_SIZE];

int top

};

Pregunta 7: Describe brevemente qué es una pila. El proceso de entrada y salida de la pila son en realidad dos datos. estructuras. Una pila es una estructura de datos en la que los elementos de datos están dispuestos en orden, sólo en un extremo.

(llamado la parte superior de la pila)

Insertar y eliminar elementos de datos. Puntos clave: Montón, en cualquier orden. El último en entrar, el primero en salir.

La estructura de datos de la pila tiene dos operaciones básicas: push y pop.

Hay dos indicadores en el marco de la pila: pila inferior y pila superior, donde pila superior significa empujar o hacer estallar.

La dirección de los datos, la parte inferior de la pila representa la dirección de memoria de los últimos datos en el marco de la pila.

En Win32, el registro especialmente almacena un puntero al final de la pila, y la pila crece hacia direcciones inferiores.

Entonces especialmente apunta al elemento superior de la pila.

Comparación de pilas (sistema operativo):

El compilador asigna y libera automáticamente, almacena valores de parámetros de funciones, valores de variables locales, etc. Esto

opera de manera similar a la pila en la estructura de datos, utilizando el caché de primer nivel.

Por lo general, está en el espacio de almacenamiento cuando se llama y se liberará inmediatamente después de la llamada.

Montón (sistema operativo):

La liberación generalmente la especifica el programador.

Si el programador no la libera, el programa eventualmente puede ser reciclado. el sistema operativo. El método de asignación es similar a una lista vinculada.

El montón se almacena en la caché de segundo nivel y su ciclo de vida está determinado por el algoritmo de recolección de basura de la máquina virtual (en lugar de una vez que se convierte en huérfano). Entonces, la velocidad de llamada de estos objetos es relativamente lenta.

Montón (estructura de datos)

El montón se puede ver como un árbol, como la clasificación del montón.

Pila (estructura de datos)

: estructura de datos último en entrar, primero en salir

Los diferentes idiomas tienen descripciones diferentes. Puede ver la API para cada idioma.

Pregunta 8: ¿Qué es una pila? ¿Qué hace la pila? Respuesta satisfactoria de un amigo entusiasta 22/06/2011 La pila son en realidad dos conceptos en los resultados de datos y es una forma de almacenar datos. Pila: orden aleatorio; Pila: último en entrar, primero en salir. Para hablar de utilidad, al escribir código, a veces el acceso a los datos debe tener un orden prescrito, y este orden lo determina usted mismo. Luego, según las características de utilidad del programa que escribe, haga preguntas en orden de montón, pila o cola: ¿Por qué es necesario reasignar el puntero de la pila SP al programar? Respuesta: ¿No es esto una inicialización? La pila es un área de almacenamiento especial cuya función principal es almacenar temporalmente datos y direcciones. Generalmente se usa para proteger puntos de interrupción y sitios. Su característica es acceder a los datos según el principio de primero en entrar, último en salir. La entrada y salida aquí se refieren a las operaciones de entrada y salida de la pila. Ciertas celdas de la RAM en chip 80C51 se pueden utilizar como pilas.

Hay un registro de puntero de pila de 8 bits SP, que se utiliza para indicar qué celda de RAM en el chip está en la parte superior de la pila actual. Después de restablecer el sistema del microcontrolador 80C51, el valor inicial de SP es 07H, lo que significa que la información comenzará a acumularse desde la unidad 08H de la RAM interna. Sin embargo, el área de la pila de la serie 80C51 no es fija. El área de la pila se puede cambiar cambiando el valor del registro SP a través del software. Para evitar el área de registro de trabajo y el área de direccionamiento de bits, el valor inicial de SP se puede establecer en un valor de dirección de 2FH o mayor. Si la CPU utiliza dos conjuntos de registros de trabajo en su operación, el valor inicial de SP debe ser al menos 0FH o mayor si no se usan variables de bits, si se usan variables de bits, el valor inicial de SP debe ser al menos 2FH o mayor; ; compilado por KeilC51 El programador calculará automáticamente el valor de configuración inicial de SP sin necesidad de que los programadores se preocupen.

¿Qué significa la pila de preguntas? En informática, una pila es una lista lineal que limita las operaciones de inserción o eliminación solo al final de la lista. La pila es una estructura de datos, una lista lineal especial que solo se puede insertar en un extremo y eliminar en el otro. Almacena datos según el principio de último en entrar, primero en salir. Los primeros datos ingresados ​​se envían al final de la pila y los últimos datos se envían a la parte superior de la pila. Cuando sea necesario leer datos, sáquelos de la parte superior de la pila (lea primero los últimos datos). Stack es una lista lineal especial que permite la inserción y eliminación en el mismo extremo. Un extremo que permite operaciones de inserción y eliminación se llama la parte superior de la pila y el otro extremo es la parte inferior de la pila (la parte inferior de la pila es fija y la parte superior de la pila está flotante); El número de elementos en la pila es cero, se llama pila vacía. La inserción generalmente se denomina PUSH y la eliminación se denomina POP. Una pila también se denomina lista de últimos en entrar, primeros en salir. ¡La pila se puede usar para almacenar puntos de interrupción en llamadas a funciones y la pila se usa en recursividad!

Lo anterior lo ha dejado muy claro.

Aunque es plagio.

Pregunta 10: ¿Cuáles son las características del stack? La pila es una estructura de datos que realiza el algoritmo LIFO.

La pila es una estructura de datos de este tipo. Significa abrir un área de almacenamiento en la memoria y los datos se almacenan en esta área uno por uno (es decir, "push-push"). Hay un puntero de dirección que siempre apunta a la unidad de datos donde se encuentran los últimos datos ingresados ​​en la pila. El registro que almacena este puntero de dirección se llama puntero de pila. La ubicación donde se colocan los datos por primera vez se denomina "parte inferior de la pila". Los datos se almacenan uno por uno, este proceso se llama "push". Durante el proceso de inserción de la pila, cada vez que se inserta un dato en la pila, se coloca en la siguiente celda conectada a la celda anterior y la dirección en el puntero de la pila se incrementa automáticamente en 1. Al leer estos datos, los datos se leen de acuerdo con la dirección en el indicador de pila y el número de dirección en el indicador de pila se reduce automáticamente en 1. Este proceso se llama "expulsión". Esto implementa el principio de último en entrar, primero en salir.