/* * C++ - Colas con prioridad * Description: Se encola caracteres de acuerdo a su prioridad(entero) ingresada. */ #inc
Views 78 Downloads 0 File size 234KB
/* * C++ - Colas con prioridad * Description: Se encola caracteres de acuerdo a su prioridad(entero) ingresada. */
#include #include using namespace std;
/*
Estructura de los nodos de la cola
------------------------------------------------------------------------*/ struct nodo { char dato; int priori;
// prioridad del nodo
struct nodo *sgte; };
/*
Estructura de la cola
------------------------------------------------------------------------*/ struct cola { nodo *delante; nodo *atras
;
};
/*
Crear Nodo
------------------------------------------------------------------------*/ struct nodo *crearNodo( char x, int pr) { struct nodo *nuevoNodo = new(struct nodo); nuevoNodo->dato = x; nuevoNodo->priori = pr; return nuevoNodo; };
/*
Encolar cacarter con prioridad
------------------------------------------------------------------------*/ void encolar( struct cola &q, char valor, int priori ) {
struct nodo *aux = crearNodo(valor, priori); aux->sgte = NULL; if( q.delante == NULL) q.delante = aux;
// encola el primero elemento
else (q.atras)->sgte = aux;
q.atras = aux;
// puntero que siempre apunta al ultimo elemento
}
/*
Mostrar Cola
------------------------------------------------------------------------*/ void muestraCola( struct cola q ) { struct nodo *aux; aux = q.delante; cout dato; aux1->priori = aux2->priori; aux1->dato
= aux2->dato;
aux2->priori = p_aux; aux2->dato
= c_aux;
} aux2 = aux2->sgte; } aux1 = aux1->sgte; } } /*
Inserta cacacteres en una cola
------------------------------------------------------------------------*/ void insertar( struct cola &q, char c, int pr ) { /* Encolando caracteres */ encolar( q, c, pr ); /* Ordenando por prioridad */ ordenarPrioridad( q ); }
/*
Menu de opciones
------------------------------------------------------------------------*/ void menu() { cout