1. Personas
1.1. Contiene los datos de los clientes ,los cuales se almacenan en un archivo
1.2. typedef struct
1.2.1. {
1.2.2. char nombreApellido [40];
1.2.3. int cantArticulos;
1.2.4. int tiempoDeEspera;
1.2.5. int tiempoProcesado ;
1.2.6. int tipo_cliente; // prioridad (1: embarazada, 2: jubilado y 3: común)
1.2.7. int tipo_pago; // 1 efectivo, 2 crédito o débito, 3 todos
1.2.8. } persona;
2. Lista(Doblemente Enlazada)
2.1. typedef struct
2.1.1. { persona cliente;
2.1.2. struct nodo * siguiente;
2.1.3. struct nodo * anterior;
2.1.4. } nodo;
2.1.4.1. Contiene la estructura de persona con los datos de los clientes que vienen del árbol y un orden que se mantendrá en la fila.
3. Arbol
3.1. typedef struct
3.1.1. { persona p;
3.1.1.1. Variable del tipo persona la cual trae los datos de los clientes
3.1.2. struct nodoArbol * izq;
3.1.3. struct nodoArbol * der;
3.1.4. } nodoArbol;
3.1.4.1. Los nodos almacenados en el árbol son distribuidos en las filas
4. Fila
4.1. typedef struct
4.1.1. { struct nodo * inicio;
4.1.2. struct nodo * final;
4.1.3. } Fila;
4.1.3.1. En la fila se encuentran los clientes(nodos) que van a ser atendidos, según su prioridad, cantidad de productos y algoritmo de flanificacion.
5. Caja
5.1. typedef struct
5.1.1. { int nro_de_caja;
5.1.2. char nombreCajero[40];
5.1.3. int tipo_pago; // 1 efectivo, 2 crédito o débito, 3 todos
5.1.4. int abiertaOcerrada;
5.1.5. char algoritmoPlanificacion[30]; // debe informar que tipo de alg. de planificación utiliza la caja
5.1.5.1. FIFO
5.1.5.2. SRTF (SJF apropiativo)
5.1.5.3. RR
5.1.5.3.1. Quatum de 8(Cantidad de productos)
5.1.5.4. Prioridades
5.1.6. Fila filita;
5.1.6.1. Contiene la fila con el listado de clientes a atender por cada caja.
5.1.7. } caja;