问答题 设有一个排序码输入序列{10,40,30,50,20,25,45,60},试根据败者树的构造算法构造一棵败者树。
【正确答案】
【答案解析】输入的排序码有8个,构造出的败者树的叶结点有8个,编号0~7,第8号原始是构造败者树的辅助存储,初始时放一个-∞,该值在整数情形可为-INT_MAX(在limits.h文件中定义),在浮点数情形可为-FLT_MAx(在float.h文件中定义)。在构造之前,败者树的各内结点填充8,表示初始时第8个归并段(虚拟归并段)是具有最小排序码的元素。构造过程从后向前逐个元素插入,每插入一个元素就调整败者树,当所有元素都插入并调整完后,败者树就构造成功了。如下图所示。