📄 radix.cpp
字号:
const int max_chars = 28;
template <class Record>
void Sortable_list<Record>::rethread(Queue queues[])
/*
Post: All the queues are combined back to the Sortable_list, leaving
all the queues empty.
Uses: Methods of classes List, and Queue.
*/
{
Record data;
for (int i = 0; i < max_chars; i++)
while (!queues[i].empty()) {
queues[i].retrieve(data);
insert(size(), data);
queues[i].serve();
}
}
template <class Record>
void Sortable_list<Record>::radix_sort()
/*
Post: The entries of the Sortable_list have been sorted
so all their keys are in alphabetical order.
Uses: Methods from classes List, Queue, and Record;
functions position and rethread.
*/
{
Record data;
Queue queues[max_chars];
for (int position = key_size - 1; position >= 0; position--) {
// Loop from the least to the most significant position.
while (remove(0, data) == success) {
int queue_number = alphabetic_order(data.key_letter(position));
queues[queue_number].append(data); // Queue operation.
}
rethread(queues); // Reassemble the list.
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -