One that is created by the programmer, rather than defined within the programming language. They include structures such as queues, stacks, trees and graphs.
A logical description of how the data is structured and the operations that can be performed on it, but how this is to be done is not necessarily known to the user
A collection of data in memory that has the ability to grow or shrink in size. It uses the heap, a portion of memory from which space is automatically allocated or de-allocated as required.
A queue where the logical order of items is determined by their priority, with the highest priority items at the front and the lowest priority items at the back
Check the priority of each item in the queue, starting at the rear and moving it along one place until an item with the same or lower priority is found, at which point the new item can be inserted