2.4.21

上次更新:2019-04-17
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

给元素添上序号组成结点,按照序号排序即可,每个结点可以用类似于这样的实现:

class ElemType<T> : IComparable<ElemType<T>>
{
    private int key;
    private T element;

    public ElemType(int key) => this.key = key;

    public int CompareTo(ElemType<T> other)
    {
        return this.key.CompareTo(other.key);
    }
}

栈:
用最大元素在最前的优先队列。
每个结点都包含一个元素和一个序号,
插入新元素时序号递增,这样最后插入的元素总在最前。

队列:
用最小元素在最前的优先队列。
每个结点都包含一个元素和一个序号,
插入新元素时序号递增,这样最先插入的元素总在最前。

随机队列:
优先队列的选择任意
每个结点都包含一个元素和一个序号,
插入新元素时随机指定一个序号,这样元素的顺序就是任意的了。

上一题 下一题