TEST(WTF_Deque, Remove) { Deque<int> deque; deque.append(11); deque.prepend(10); deque.append(12); deque.append(13); EXPECT_EQ(10, deque.first()); EXPECT_EQ(13, deque.last()); deque.removeLast(); EXPECT_EQ(10, deque.first()); EXPECT_EQ(12, deque.last()); deque.removeFirst(); EXPECT_EQ(11, deque.first()); EXPECT_EQ(12, deque.last()); deque.removeFirst(); EXPECT_EQ(12, deque.first()); EXPECT_EQ(12, deque.last()); deque.removeLast(); EXPECT_TRUE(deque.isEmpty()); }
void main ( void ) { Deque<int> intQ; printf ( "isEmpty(1): %d\n", intQ.isEmpty ( ) ? 1 : 0 ); intQ.insertFirst ( 4 ); cout << intQ <<endl; printf ( "removeLast(4): %d\n", intQ.removeLast ( ) ); cout << intQ <<endl; intQ.insertFirst ( 5 ); intQ.insertFirst ( 12 ); intQ.insertLast ( 7 ); intQ.insertLast ( 13 ); cout << intQ <<endl; printf ( "first(12): %d\n", intQ.first ( ) ); printf ( "last(13): %d\n", intQ.last ( ) ); printf ( "size(4): %d\n", intQ.size ( ) ); printf ( "isEmpty(0): %d\n", intQ.isEmpty ( ) ? 1 : 0 ); printf ( "removeLast(13) :%d\n", intQ.removeLast ( ) ); printf ( "removeLast(7) :%d\n", intQ.removeLast ( ) ); printf ( "removeLast(5) :%d\n", intQ.removeLast ( ) ); cout << intQ <<endl; printf ( "removeFirst(12) :%d\n", intQ.removeFirst ( ) ); cout << intQ <<endl; printf ( "size(0): %d\n", intQ.size ( ) ); printf ( "isEmpty(1): %d\n", intQ.isEmpty ( ) ? 1 : 0 ); intQ.removeLast ( ); }
/*-------------------------------------------------------------*\ | Main program | \*-------------------------------------------------------------*/ int main() { Deque D; char C; IBoolean ReadFront = True; int i; // Put all characters in the deque. // Then read it, changing the end to read from // with every character read. cout << endl << "Adding characters to the back end of the deque:" << endl; for (i = 0; String[i] != 0; i ++) { D.addAsLast(String[i]); cout << String[i]; } cout << endl << endl << "Current number of elements in the deque: " << D.numberOfElements() << endl; cout << endl << "Contents of the deque:" << endl; Print Aprinter; D.allElementsDo(Aprinter); cout << endl << endl << "Reading from the deque one element from front, one " << "from back, and so on:" << endl; while (!D.isEmpty()) { if (ReadFront) // Read from front of Deque { C = D.firstElement(); // Get the character D.removeFirst(); // Delete it from the Deque } else { C = D.lastElement(); D.removeLast(); } cout << C; ReadFront = !ReadFront; // Switch to other end of Deque } cout << endl; return(0); }
static void buildMaze(int y, int x) { int numOffsets, offset, offsets[4]; while (1) { numOffsets = 0; maze[y][x].visited = true; if (y > 0 && !maze[y - 1][x].visited) offsets[numOffsets ++] = -width; if (y < height - 1 && !maze[y + 1][x].visited) offsets[numOffsets ++] = width; if (x > 0 && !maze[y][x - 1].visited) offsets[numOffsets ++] = -1; if (x < width - 1 && !maze[y][x + 1].visited) offsets[numOffsets ++] = 1; if (numOffsets > 0) { offset = offsets[rand() % numOffsets]; dp.addFirst(offset(x, y)); if (offset == -width) { maze[y - 1][x].bottom = false; buildMaze(y - 1, x); } else if (offset == width) { maze[y][x].bottom = false; buildMaze(y + 1, x); } else if (offset == -1) { maze[y][x - 1].right = false; buildMaze(y, x - 1); } else if (offset == 1) { maze[y][x].right = false; buildMaze(y, x + 1); } else abort(); } else if (dp.size() > 0) { offset = dp.removeFirst(); x = xcoord(offset); y = ycoord(offset); } else break; } maze[height - 1][width - 1].right = false; }
int main(int argc, char** argv) { Deque<char> a; char base_pair; while(cin >> base_pair) a.addLast(base_pair); while(!a.isEmpty()) { if(a.size() == 1) { cout << "false" << endl; return 0; } char first = a.removeFirst(); char last = a.removeLast(); switch(first) { case 'A': if(last != 'T') { cout << "false" << endl; return 0; } continue; case 'T': if(last != 'A') { cout << "false" << endl; return 0; } continue; case 'C': if(last != 'G') { cout << "false" << endl; return 0; } continue; case 'G': if(last != 'C') { cout << "false" << endl; return 0; } continue; default: cout << "false" << endl; return 0; } } cout << "true" << endl; return 0; }
void DatabaseThread::unscheduleDatabaseTasks(Database* database) { // Note that the thread loop is running, so some tasks for the database // may still be executed. This is unavoidable. Deque<RefPtr<DatabaseTask> > filteredReverseQueue; RefPtr<DatabaseTask> task; while (m_queue.tryGetMessage(task)) { if (task->database() != database) filteredReverseQueue.append(task); } while (!filteredReverseQueue.isEmpty()) { m_queue.append(filteredReverseQueue.first()); filteredReverseQueue.removeFirst(); } }
void CSSStyleSheet::addSubresourceStyleURLs(ListHashSet<KURL>& urls) { Deque<CSSStyleSheet*> styleSheetQueue; styleSheetQueue.append(this); while (!styleSheetQueue.isEmpty()) { CSSStyleSheet* styleSheet = styleSheetQueue.first(); styleSheetQueue.removeFirst(); RefPtr<CSSRuleList> ruleList = styleSheet->cssRules(); for (unsigned i = 0; i < ruleList->length(); ++i) { CSSRule* rule = ruleList->item(i); if (rule->isImportRule()) { if (CSSStyleSheet* ruleStyleSheet = static_cast<CSSImportRule*>(rule)->styleSheet()) styleSheetQueue.append(ruleStyleSheet); } rule->addSubresourceStyleURLs(urls); } } }