0001 /****************************************************************************************** 0002 * Test of queue 0003 ******************************************************************************************/ 0004 #include "queue_test.h" 0005 0006 int testID = 0; //测试编号 0007 0008 /****************************************************************************************** 0009 * 测试栈 0010 ******************************************************************************************/ 0011 template <typename T> //元素类型 0012 void testQueue ( int n ) { 0013 Queue<T> Q; 0014 printf ( "\n ==== Test %2d. Growing queue\n", testID++ ); 0015 while ( Q.size() < n ) { 0016 ( Q.empty() || ( 30 < dice ( 100 ) ) ) ? 0017 Q.enqueue ( (T) dice ( 2 * n ) ) : //70%入队 0018 Q.dequeue(); //30%出队 0019 print ( Q ); 0020 } 0021 printf ( "\n ==== Test %2d. Shrinking queue\n", testID++ ); 0022 while ( !Q.empty() ) { 0023 ( 70 < dice ( 100 ) ) ? 0024 Q.enqueue ( (T) dice ( 2 * n ) ) : //30%入队 0025 Q.dequeue(); //70%出队 0026 print ( Q ); 0027 } 0028 } 0029 0030 /****************************************************************************************** 0031 * 测试队列 0032 ******************************************************************************************/ 0033 int main ( int argc, char* argv[] ) { 0034 if ( 2 > argc ) { printf ( "Usage: %s <size of test>\a\a\n", argv[0] ); return 1; } 0035 srand ( ( unsigned int ) time ( NULL ) ); 0036 testQueue<int> ( atoi ( argv[1] ) ); //元素类型可以在这里任意选择 0037 return 0; 0038 }