本文整理汇总了C++中SortedList::addWithoutSort方法的典型用法代码示例。如果您正苦于以下问题:C++ SortedList::addWithoutSort方法的具体用法?C++ SortedList::addWithoutSort怎么用?C++ SortedList::addWithoutSort使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SortedList
的用法示例。
在下文中一共展示了SortedList::addWithoutSort方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: buildHuffTree
void RosettaCodeProvider::buildHuffTree()
{
//build Node list from HuffCodeTable, no need to sort (already done on get call)
SortedList<HuffNode*> nodeList;
int i = 0;
HuffData* iterate = _huffCodeTable->get(i);
while(iterate != nullptr){
++i;
nodeList.addWithoutSort(new HuffNode(iterate));
iterate = _huffCodeTable->get(i);
}
//merge nodes together
while(nodeList.size() >= 2){
HuffNode* one = nodeList.remove(0);
HuffNode* two = nodeList.remove(0);
unsigned sum = one->getFrequency() + two->getFrequency();
HuffNode* three = new HuffNode(sum);
if(*one < *two){
three->_leftChild = one;
three->_rightChild = two;
}else{
three->_leftChild = two;
three->_rightChild = one;
}
nodeList.addWithSort(three);
}
if(nodeList.size() == 0){
//something went wrong
//nothing in codeTable to start with?
return;
}
if(nodeList.size() == 1){
_huffTree = new HuffTree(nodeList.remove(0));
}
}
示例2: if
SortedList<T>* SortedList<T>::merge(SortedList<T> *t1, SortedList<T> *t2)
{
int siz1 = t1->size();
int siz2 = t2->size();
int totalSize = siz1 + siz2;
int cnt1=0, cnt2=0;
SortedList<T>* merged = new SortedList<T>();
for(int i = 0; i < totalSize; i++){
if(cnt1 == siz1){
merged->addWithoutSort(t2->get(cnt2));
++cnt2;
}else if(cnt2 == siz2){
merged->addWithoutSort(t1->get(cnt1));
++cnt1;
}else{
if(std::is_pointer<T>::value){ //dealing with pointer to object
//pointer to pointer to object will not work unfortunately
T item1 = t1->get(cnt1);
T item2 = t2->get(cnt2);
if(*(item1) < *(item2)){
merged->addWithoutSort(t1->get(cnt1));
++cnt1;
}else{
merged->addWithoutSort(t2->get(cnt2));
++cnt2;
}
}else{
if(t1->get(cnt1) < t2->get(cnt2)){
merged->addWithoutSort(t1->get(cnt1));
++cnt1;
}else{
merged->addWithoutSort(t2->get(cnt2));
++cnt2;
}
}
}
}
return merged;
}