当前位置: 首页>>代码示例>>C++>>正文


C++ DList类代码示例

本文整理汇总了C++中DList的典型用法代码示例。如果您正苦于以下问题:C++ DList类的具体用法?C++ DList怎么用?C++ DList使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了DList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char* argv[]) {
	DList dl;

	dl.reverse();

	dl.push_back(200);
	dl.push_back(300);

	std::cout << dl;

	dl.push_front(100);

	std::cout << dl;

	dl.reverse();

	std::cout << dl;

	// Let compiler figure out the type for dl2 based on expression
	const decltype(dl) dl2 {10, 20, 30, 40, 50};
	
	std::cout << dl2;
	//dl2.push_front(0);

	decltype(dl) dl3 = {1000, 2000, 3000, 4000, 5000};
	dl3.reverse();

	std::cout << dl3;

	return 0;
}
开发者ID:satishgoda,项目名称:closetothemachine,代码行数:31,代码来源:dlist.c

示例2: test

void test(){
	DList d;
	
	d.PushFront(1);

	d.PushFront(2);
	d.PushFront(3);
	d.PushFront(4);
	d.PushFront(5);
	cout << d;
	d.Reverse();
	cout << d;
	//d.Sort();
	//cout << d;
	//Node *ret = d.Find(4); 
	//d.Insert(ret, 5);
	//cout << d;
	//d.ReMoveALL(3);
	//cout << d;
	//d.PopFront();
	//cout << d;
	//d.PopFront();
	//cout << d;
	//d.PopFront();
	//cout << d;
	//d.PopFront();
	//cout << d;
}
开发者ID:FLRSUN,项目名称:C-,代码行数:28,代码来源:test.cpp

示例3: main

int main()
{
    DList<int> list;
    int array[BUFF] = {1,3,2,4,7,5,6,9,0,8};

    for(const auto &i : array)
		list.push_back(i);
    list.print();
    return 0;
}
开发者ID:CoCombo,项目名称:DataStructure-Algorithm,代码行数:10,代码来源:test.cpp

示例4: first

DList<T>& DList<T>::copy()
{
  first();
  DList<T> copyList;
  Node<T> *tmp = first;

  while(tmp)
  {
    copyList.insert(temp->item);
    temp = temp->next;
  }

  return copyList;
}
开发者ID:alvaroemmanuel,项目名称:progra3,代码行数:14,代码来源:ejercicios.cpp

示例5: test_1

void test_1() {
  DList<int> list;
  int i1 = 1;
  int i2 = 2;
  int i3 = 3;
  int i4 = 1;
  int i5 = 2;
  int i6 = 3;
  list.append(i1);
  list.append(i2);
  list.append(i3);
  list.prepend(i4);
  list.prepend(i5);
  list.prepend(i6);
}
开发者ID:cameronbwhite,项目名称:ActivityPlanner,代码行数:15,代码来源:test_List.cpp

示例6: main

int main()
{
	DList<int> Lista;
	//insertamos elementos
	for(int i = 0; i < 10; i++)
	{
		Lista.insertFirst(i);
	}
	//Utilizamos el iterador
	cout<<"Valores lista"<<endl;
	for(DList<int>::Iterator it(Lista);it.hasCurrent();it.next())
	{
		cout<<it.getCurrent()->getData()<<" ";	
	}
	cout<<endl;
	cout<<"Valores menor de la lista"<<endl;
	cout<<searchMin(Lista)<<endl;
	
	//simpleSort(Lista);
	//quickSort(Lista);
	//mergeSort(Lista);
	sort(Lista);
	cout<<"Valores lista ordenada"<<endl;
	for(DList<int>::Iterator it(Lista);it.hasCurrent();it.next())
	{
		cout<<it.getCurrent()->getData()<<" ";	
	}
	cout<<endl;
	DList<int> lista2;
	//probamos el intercambio entre listas
	lista2.swap(Lista);
	//probamos la asignacion estre listas
	Lista = lista2;
	if(lista2 == Lista)
	{
		cout<<"Listas son iguales"<<endl;
	}
	//Probamos los [] sobre la lista
	//OJO esta operacion hace muy lento el acceso a la misma
	for(int i = 0;i < Lista.getSize();i++)
	{
		cout<<Lista[i]<<" ";	
	}
	cout<<endl;


	return 0;
}
开发者ID:velasquezerik,项目名称:EstructurasDatos,代码行数:48,代码来源:TestDList.C

示例7: test_4

void test_4() {
  DList<int> list;
  DListIterator<int> iterator;
  DListIterator<int> iteratorEnd;
  int i1 = 1;
  int i2 = 2;
  int i3 = 3;
  int i4 = 1;
  int i5 = 2;
  int i6 = 3;
  int i;
  list.append(i1);
  list.append(i2);
  list.append(i3);
  list.prepend(i4);
  list.prepend(i5);
  list.prepend(i6);
  list.begin(iterator);
  list.end(iteratorEnd);
  while (iterator != iteratorEnd) {
    i = *iterator;
    printf("%d\n", i);
    iterator++;
  }
}
开发者ID:cameronbwhite,项目名称:ActivityPlanner,代码行数:25,代码来源:test_List.cpp

示例8: boogie

void boogie( DList< int > &dl, DList< int > &ans )
{
    if( !dl.size )
    {
        for( Node< int > *i = ans.first; i; i = i->r ) printf( " %d", i->v );
        puts( "" );
        return;
    }

    Node< int > *i = dl.first;
    while( i )
    {
        dl.erase( i );
        ans.push_back( i->v );
        boogie( dl, ans );
        ans.pop_back();
        dl.restore( i );
        i = i->r;
    }
}
开发者ID:AssaultKoder95,项目名称:codejam,代码行数:20,代码来源:dlinks.cpp

示例9: main

int main()
{
	cout << "=============================== PROGRAMACIO II ================================" << endl;
	cout << endl;
	cout << endl;

	DList<int> list;
	list.PushBack(1);
	list.PushBack(2);
	list.PushBack(3);
	list.PushBack(4);

	cout << "Count: " << list.Count() << endl;
	cout << "First: " << list.GetFirst()->data << endl;

	cout << endl;
	cout << endl;
	cout << "===============================================================================" << endl;
	system("pause");
	return 0;
}
开发者ID:AleixBueso,项目名称:Prog_II,代码行数:21,代码来源:Main.cpp

示例10: main

int main(int argc, const char * argv[])
{

    DList<int> myList;
	
	//for(int i = 0; i < 10; ++i)
	//	myList.addFront(i);
	myList.addBack(50);
	myList.addBack(100);
	
	cout << myList.getFront() << endl;
	cout << myList.getBack() << endl;
	
	while(!myList.isEmpty())
		cout << myList.removeFront() << endl;
	
	cout << myList.getSize() << endl;

    
    return 0;
}
开发者ID:clare103,项目名称:C-workspace,代码行数:21,代码来源:main.cpp

示例11: main

int main()
{
	DList list;

	list.AddHead(3);
	list.AddHead(2);
	list.AddHead(1);

	list.AddTail(5);
	list.AddTail(6);
	list.AddTail(7);

	list.InsertAfter(3, 4);

	list.showReverse();

    return 0;
}
开发者ID:maxchv,项目名称:cpp,代码行数:18,代码来源:01.DListAgain.cpp

示例12: main

int main()
{
	DList<int> list;
	srand((unsigned)time(NULL));
	for(int i = 0 ; i < 5 ; ++i)
	{
		list.findWithIndex(i);
		list.insertNext(rand() % 50);
	}

	std::cout << list.getSize() << std::endl;
	std::cout << "Before Sorting" << std::endl;
	list.printAll();

	list.sorting(comp);

	std::cout << "\nAfter Sorting" << std::endl;
	list.printAll();
	return 0;
}
开发者ID:Sayaten,项目名称:StudyCPP,代码行数:20,代码来源:DoubleLinkedList.cpp

示例13: testDList

void UtilTestCase::testDList() {
	DList<int> l;
	CPPUNIT_ASSERT(l.isEmpty());
	CPPUNIT_ASSERT(l.getSize() == 0);
	CPPUNIT_ASSERT(l.getHeader()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(l.removeFirst() == NULL);
	CPPUNIT_ASSERT(l.removeLast() == NULL);

	DLink<int> n1(1);
	CPPUNIT_ASSERT(n1.get() == 1);
	DLink<int> n2(2);
	CPPUNIT_ASSERT(n2.get() == 2);
	n2.set(3);
	CPPUNIT_ASSERT(n2.get() == 3);

	// 测试addFirst和addLast
	l.addFirst(&n1);
	CPPUNIT_ASSERT(l.getSize() == 1);
	CPPUNIT_ASSERT(!l.isEmpty());
	CPPUNIT_ASSERT(l.getHeader()->getNext() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getPrev() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getList() == &l);
	CPPUNIT_ASSERT(n1.getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getPrev() == l.getHeader());

	l.addLast(&n2);
	CPPUNIT_ASSERT(l.getSize() == 2);
	CPPUNIT_ASSERT(!l.isEmpty());
	CPPUNIT_ASSERT(l.getHeader()->getNext() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getPrev() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getNext() == &n2);
	CPPUNIT_ASSERT(n1.getPrev() == l.getHeader());
	CPPUNIT_ASSERT(n2.getList() == &l);
	CPPUNIT_ASSERT(n2.getNext() == l.getHeader());
	CPPUNIT_ASSERT(n2.getPrev() == &n1);

	// 测试moveToFirst和moveToLast
	l.moveToFirst(&n2);
	CPPUNIT_ASSERT(l.getSize() == 2);
	CPPUNIT_ASSERT(!l.isEmpty());
	CPPUNIT_ASSERT(l.getHeader()->getNext() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getPrev() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getPrev() == &n2);
	CPPUNIT_ASSERT(n1.getNext() == l.getHeader());
	CPPUNIT_ASSERT(n2.getPrev() == l.getHeader());
	CPPUNIT_ASSERT(n2.getNext() == &n1);

	l.moveToLast(&n2);
	CPPUNIT_ASSERT(l.getSize() == 2);
	CPPUNIT_ASSERT(!l.isEmpty());
	CPPUNIT_ASSERT(l.getHeader()->getNext() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getPrev() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getNext() == &n2);
	CPPUNIT_ASSERT(n1.getPrev() == l.getHeader());
	CPPUNIT_ASSERT(n2.getNext() == l.getHeader());
	CPPUNIT_ASSERT(n2.getPrev() == &n1);

	// 测试removeFirst
	CPPUNIT_ASSERT(l.removeFirst() == &n1);
	CPPUNIT_ASSERT(n1.getList() == NULL);
	CPPUNIT_ASSERT(n1.getNext() == NULL);
	CPPUNIT_ASSERT(n1.getPrev() == NULL);
	CPPUNIT_ASSERT(l.getSize() == 1);
	CPPUNIT_ASSERT(!l.isEmpty());
	CPPUNIT_ASSERT(l.getHeader()->getNext() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getPrev() == &n2);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(n2.getNext() == l.getHeader());
	CPPUNIT_ASSERT(n2.getPrev() == l.getHeader());

	CPPUNIT_ASSERT(l.removeFirst() == &n2);
	CPPUNIT_ASSERT(n2.getList() == NULL);
	CPPUNIT_ASSERT(n2.getNext() == NULL);
	CPPUNIT_ASSERT(n2.getPrev() == NULL);
	CPPUNIT_ASSERT(l.isEmpty());
	CPPUNIT_ASSERT(l.getSize() == 0);
	CPPUNIT_ASSERT(l.getHeader()->getNext() == l.getHeader());

	// 测试removeLast
	l.addLast(&n1);
	n1.addAfter(&n2);
	CPPUNIT_ASSERT(l.removeLast() == &n2);
	CPPUNIT_ASSERT(n2.getList() == NULL);
	CPPUNIT_ASSERT(n2.getNext() == NULL);
	CPPUNIT_ASSERT(n2.getPrev() == NULL);
	CPPUNIT_ASSERT(l.getSize() == 1);
	CPPUNIT_ASSERT(!l.isEmpty());
	CPPUNIT_ASSERT(l.getHeader()->getNext() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getPrev() == &n1);
	CPPUNIT_ASSERT(l.getHeader()->getNext()->getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getNext() == l.getHeader());
	CPPUNIT_ASSERT(n1.getPrev() == l.getHeader());

//.........这里部分代码省略.........
开发者ID:github188,项目名称:mysql-5.5.30,代码行数:101,代码来源:TestUtil.cpp

示例14: main

int main( int argc, char* argv[] ) {

  // verify argument
  if ( argc != 2 ) {
    cerr << "usage: statistics size" << endl;
    return -1;
  }
  
  // verify size
  int size = atoi( argv[1] );
  if ( size < PATTERN_MAX ) {
    cerr << "usage: size >= " << PATTERN_MAX << endl;
    return -1;
  }

  // initialize list items
  srand( 1 );
  int *items = new int[size];
  initArray( items, size, -1 );
  printArray( items, size, "items" );
    
  // initialize access pattern
  int *pattern = new int[PATTERN_MAX];
  initArray( pattern, PATTERN_MAX, size );
  printArray( pattern, PATTERN_MAX, "pattern" );
 
  // initialize pattern frequency
  int *frequency = new int[PATTERN_MAX];
  for ( int i = 1; i < PATTERN_MAX; i++ )
    frequency[i] = i + frequency[i - 1];
  printArray( frequency, PATTERN_MAX, "frequency" );

  // generate access sequence
  int *sequence = new int[SEQ_MAX];
  for ( int i = 0; i < SEQ_MAX; i++ ) {
    int random = rand( ) % ( frequency[PATTERN_MAX - 1] + 1 );
    int hit;
    for ( hit = 0; hit < PATTERN_MAX; hit++ ) {
      if ( random <= frequency[hit] ) {
	break;
      }
    }
    sequence[i] = items[pattern[hit]];
  }
  printArray( sequence, SEQ_MAX, "sequence" );

  // now conduct performance evaluation
  // doubly linked list
  DList<int> dlist;
  for ( int i = 0; i < size; i++ )
    dlist.insert( items[i], i );

  for ( int i = 0; i < SEQ_MAX; i++ )
    dlist.find( sequence[i] );

  cout << "dlist's find cost = " << dlist.getCost( ) << endl;

  // mtf list
  MtfList<int> mtflist;
  for ( int i = 0; i < size; i++ )
    mtflist.insert( items[i], i );

  for ( int i = 0; i < SEQ_MAX; i++ )
    mtflist.find( sequence[i] );

  cout << "mtflist's find cost = " << mtflist.getCost( ) << endl;

  // transpose list
  TransposeList<int> translist;
  for ( int i = 0; i < size; i++ )
    translist.insert( items[i], i );

  for ( int i = 0; i < SEQ_MAX; i++ )
    translist.find( sequence[i] );

  cout << "translist's find cost = " << translist.getCost( ) << endl;

  // skip list
  SList<int> skiplist;
  for ( int i = 0; i < size; i++ )
    skiplist.insert( items[i] );

  for ( int i = 0; i < SEQ_MAX; i++ )
    skiplist.find( sequence[i] );

  cout << "skip's find cost = " << skiplist.getCost( ) << endl;

  return 0;
}
开发者ID:KyleGraham,项目名称:CSS342,代码行数:89,代码来源:statistics.cpp

示例15: set

    // This method gets called when ever there was a MISS or Cache need
    // to be reorganized in case if it reached to its capacity to hold entries.
	void set(Key key, Value data)
	{
	    Entry<Key,Value>* node = hash[key];
		if(node) {
			// refresh the link list
			entries->remove(node);
			node->data = data;
			entries->addInFront(node);
		}
		else{
			if ( cacheFull() ){
			    node = entries->tail->prev;
			    entries->remove(node);
			    hash.erase(node->key);
			    node->key = key;
			    node->data = data;
			    hash[key] = node;
			    entries->addInFront(node);
			}
			else{
                node = new Entry<Key,Value>;
                node->key = key;
                node->data = data;
                hash[key] = node;
                entries->addInFront(node);
			}
		}
	}
开发者ID:nchikkam,项目名称:projects,代码行数:30,代码来源:cache.cpp


注:本文中的DList类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。