A priority queue is a queue that allows nodes to be added and deleted based on priority or preference. Nodes with higher priority are inserted at the front of the queue and lower priority nodes are added to the back. When deleting from the queue, the highest priority or first node is always removed first.