A priority queue is an abstract data type similar to a regular queue or stack data structure, but where each element has a priority assigned to it. Elements with higher priorities are served before elements with lower priorities, and if two elements have the same priority, they are served according to their order in the queue.