int main() { Deque<int> *Pippo = new Deque<int>(); Pippo->addFirst(2)->addLast(7)->addFirst(0)->addLast(9)->addFirst(13); cout << "Elementi nel Deque: " << endl; Pippo->print(); cout << "Numero elementi: " << Pippo->getSize() << endl; Pippo->delFirst()->delLast(); cout << "Numero elementi: " << Pippo->getSize() << endl; Pippo->print(); delete Pippo; }
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; }
void KdTree::range(Node* x, Deque<Point2D>& deque, const RectHV& rect, bool HNode) { if (x == NULL) return; if (rect.contains(x->p_)) deque.addFirst(x->p_); if (!HNode) { if (rect.xmax() >= x->p_.x()) range(x->rt, deque, rect, !HNode); if (rect.xmin() <= x->p_.x()) range(x->lb, deque, rect, !HNode); } else { if (rect.ymax() >= x->p_.y()) range(x->rt, deque, rect, !HNode); if (rect.ymin() <= x->p_.y()) range(x->lb, deque, rect, !HNode); } }