看病要排队不用优先级队列怎么做

不用优先级队列怎么用链队列实现优先级看病排队?
C语言
队列不是只能尾进头出吗,在杂乱入队的情况下,要怎样能按优先级输出,能查找优先级高的删除中间结点吗?

链表节点可以定义如下:
struct StNode
{
int prio; //优先级,0-n,0的优先级最高,这个可以灵活设置,相同优先级的按插入顺序排放
struct StNode * next; //下一个节点
}

每次插入的时候,按照优先级高低插入链表,相同优先级的,按照插入的先后顺序排列。(这个题目考察的是链表的排序和插入)

可以直接维护一个排序的链表,而不是按队列的思想来做

怎么定义优先级的呢?链表比较灵活,遍历检索就行,有优先级定义的话可以排序