fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Queue{
  5. private:
  6. class Node{
  7. private:
  8. int element;
  9. Node *next;
  10. public:
  11. Node(): element(0), next(0) {}
  12. Node(int e): element(e), next(0) {}
  13. void setNext(Node *n) { next = n; }
  14. int getElement() { return element; }
  15. Node *getNext() { return next; }
  16. };
  17. Node *begin;
  18. Node *end;
  19. public:
  20. Queue(): begin(0), end(0) {}
  21. void add(int value){
  22. if (0 == begin){
  23. begin = new Node(value);
  24. end = begin;
  25. }
  26. else{
  27. Node *n = new Node(value);
  28. end->setNext(n);
  29. end = n;
  30. }
  31. }
  32. Node *dequeue(){
  33. if (0 == begin) return 0;
  34. else{
  35. if (begin == end){
  36. Node *tmp = begin;
  37. begin = end = 0;
  38. return tmp;
  39. }
  40. else{
  41. Node *tmp = begin;
  42. begin = begin->getNext();
  43. return tmp;
  44. }
  45. }
  46. }
  47. void print(){
  48. Node *tmp = begin;
  49. while (tmp){
  50. std::cout << tmp->getElement() << " ";
  51. tmp = tmp->getNext();
  52. }std::cout << std::endl;
  53. }
  54. bool isEmpty() { return (0 == begin); }
  55. Node *getBegin() { return begin; }
  56. };
  57.  
  58. int main() {
  59. Queue q;
  60.  
  61. q.add(1);
  62. q.add(2);
  63. q.add(3);
  64.  
  65. q.print();
  66. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
1 2 3