本文整理汇总了C++中DLList::Pop方法的典型用法代码示例。如果您正苦于以下问题:C++ DLList::Pop方法的具体用法?C++ DLList::Pop怎么用?C++ DLList::Pop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DLList
的用法示例。
在下文中一共展示了DLList::Pop方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: reduce_cliques
//###############################################################################################################
void reduce_cliques(DLList<ClusterList<NNode*>*> *global_cluster_list, FILE *file)
{
unsigned long size;
ClusterList<NNode*> *c_cur, *largest_c=0;
DLList<ClusterList<NNode*>*> *subsets;
DLList_Iter<ClusterList<NNode*>*> c_iter, sub_iter;
DLList_Iter<NNode*> iter;
NNode *n_cur;
if (!(global_cluster_list->Size())) return;
//wir suchen den groessten Cluster
c_cur=c_iter.First(global_cluster_list);
size=0;
while (!(c_iter.End()))
{
if (c_cur->Size()>size)
{
size=c_cur->Size();
largest_c=c_cur;
}
c_cur=c_iter.Next();
}
// printf("Groesster Cluster hat %u Elemente.\n",largest_c->Size());
//Schauen, ob es Teilmengen gibt, die ebenfalls gefunden wurden
subsets=new DLList<ClusterList<NNode*>*>();
c_cur=c_iter.First(global_cluster_list);
while (!(c_iter.End()))
{
if ((*c_cur<*largest_c || *c_cur==*largest_c) && c_cur!=largest_c) //alle echten Teilcluster von largest_c und die doppelten
{
subsets->Push(c_cur);
}
c_cur=c_iter.Next();
}
// die gefundenen Subsets werden aus der cluster_liste geloescht
while (subsets->Size())
{
global_cluster_list->fDelete(subsets->Pop());
}
delete subsets;
// Dann schreiben wir den groessten Cluster in das File
fprintf(file,"Energie: %1.12f Nodes:%3lu - ",largest_c->Get_Energy(),largest_c->Size());
n_cur=iter.First(largest_c);
while (!(iter.End()))
{
fprintf(file,"%s",n_cur->Get_Name());
n_cur=iter.Next();
if (n_cur) fprintf(file,", ");
}
fprintf(file,"\n");
//Schliesslich schmeissen wir noch den eben gefundenen groessten Cluster raus
global_cluster_list->fDelete(largest_c);
//und dann geht es von vorn mit der Reduzierten ClusterListe los
reduce_cliques(global_cluster_list, file);
}