Aprendizaje de lenguaje C (12) pila y cola

pila

La pila es una lista lineal especial que solo se puede operar en un extremo;

Parte superior de la pila: el extremo que permite las operaciones;

Parte inferior de la pila: el final donde no se permiten operaciones

1. Pila: es una tabla lineal que limita las operaciones de inserción y eliminación solo al final de la tabla, también se llama tabla lineal de último en entrar, primero en salir. Estructura LIFO.      

Parte superior de la pila: el extremo que permite la inserción y eliminación;      

Parte inferior de la pila: el otro extremo;

2. Pila vacía: una pila sin ningún elemento de datos, arriba = -1, 3. Operaciones de pila:    

Empujar hacia la pila, empujar hacia la pila, empujar hacia la pila: la operación de inserción de la pila;    

Pop, pop: operaciones de eliminación de pila;    

Cuando hay un elemento en la pila, top=0;

Nota: arriba es la posición del elemento superior de la pila en la matriz, y el final con el subíndice 0 es la parte inferior de la pila. 

pila de cadena

La pila es solo la parte superior de la pila para las operaciones de inserción y eliminación, entonces, ¿debería ser el principio o el final de la lista vinculada la parte superior de la pila?        

Dado que la lista enlazada individualmente tiene un nodo principal, la pila también debe tener una parte superior, por lo que al combinar los dos en uno, el encabezado de la lista enlazada se utilizará como la parte superior de la pila, por lo que el nodo principal de la lista enlazada puede ser omitido. Luego, cuando la pila de cadenas está vacía, top = NULL.

cola  

a. Una cola es una lista lineal que solo permite operaciones de inserción en un extremo y operaciones de eliminación en el otro extremo;    

Tabla lineal primero en entrar, primero en salir, FIFO.    

Jefe del equipo: el final que se permite eliminar;  

Cola de la cola: el final que permite la inserción;    

 

C. Cola circular:    

1. Deficiencias del almacenamiento de pedidos en cola:

(1) El elemento de la cola se retira de la cola al principio de la cola, que es la posición con el subíndice 0. Esto significa que una vez que se incluye la cola, todos los elementos avanzan una posición para garantizar que el encabezado de la cola no esté vacío. Sin embargo, el jefe del equipo no se encuentra necesariamente en la posición con índice 0.

(2) Para evitar el problema de superponer el principio y el final de la cola cuando solo hay un elemento, introduzca front para señalar el elemento principal de la cola y rear para señalar la siguiente posición del elemento de cola; cuando esté al frente =rear, no queda ningún elemento en la cola, pero es una cola vacía;

(3) Cuando el frente apunta a la posición i-ésima en la matriz, la parte trasera ya apunta al final de la matriz, pero todavía hay una posición vacía antes del frente que puede continuar almacenándose. Por lo tanto, los elementos al final de la cola continúan almacenándose en las primeras i posiciones de la matriz.

2. Definición de cola circular: la estructura de almacenamiento secuencial conectada de cabeza a cola se llama cola circular, pero cuando la matriz de cola circular está llena, front = rear entra en conflicto con la condición de la cola vacía, por lo que reservamos un espacio de elemento como lleno condición, es decir, cuando la cola está llena, todavía queda una unidad libre.     

Condiciones para juzgar que la cola está llena: (rear+1)%QueueSize==front;         

Cuando delantero = 0, trasero + 1 = TAMAÑO + frente está lleno         

Cuando delantero! = 0, trasero + 1 = frente está lleno    

La fórmula general para calcular la longitud de la cola es: (rear-front+QueueSize)%QueueSize;         

当trasero > delantero 时,largo = trasero -delantero         

当trasero <delantero 时,largo = TAMAÑO - delantero + trasero    

El almacenamiento vinculado de la cola es en realidad una lista vinculada individualmente de la lista lineal, excepto que solo puede ser de entrada y salida.        

Para facilitar la operación, apuntamos el puntero principal de la cola al nodo principal de la cola de la cadena y el puntero final al nodo terminal. Cuando la cola está vacía, ambos apuntan al nodo principal.    

Supongo que te gusta

Origin blog.csdn.net/ls_dashang/article/details/81488375
Recomendado
Clasificación