예제 #1
0
파일: main.cpp 프로젝트: nakulj/csci-102
int main()
{
	cout << "It runs!" << endl;
	
	//create a stack & show it works
	Stack<int> s;
        s.pop();
        s.print();
        cout<<"Empty?  "<<s.empty()<<endl;
        cout<<s.size()<<endl;
        for(int i=0; i<10; i++) {
            s.push(2*i+1);
            s.print();
            cout<<s.size()<<endl<<endl;
        }
        cout<<"Empty?  "<<s.empty()<<endl;
        cout<<"The top is "<<(s.top())<<endl;
        for(int i=0; i<12; i++) {
            s.pop();
            s.print();
        }
        cout<<"The top is "<<(s.top())<<endl;
	//create a queue & show it works
	Queue<int> q;
        q.print();
        cout<<"Empty?  "<<q.empty()<<endl;
        cout<<q.size()<<endl;
        for(int i=0; i<10; i++) {
            q.push(2*i+1);
            q.print();
            cout<<q.size()<<endl<<endl;
        }
        cout<<"Empty?  "<<q.empty()<<endl;
        cout<<"The front is "<<(q.front())<<endl;
        cout<<"The rear is "<<(q.back())<<endl;
        for(int i=0; i<12; i++) {
            q.pop();
            q.print();
        }
        cout<<"The front is "<<(q.front())<<endl;
        cout<<"The rear is "<<(q.back())<<endl;

        Deque<int> d;
        d.print();
        for(int i=0; i<10; i++) {
            d.push_back(i);
            d.print();
        }
        for(int i=0; i<10; i++) {
            if(i%2==0) {cout<<"back"<<endl;
                d.pop_back();}
            else{cout<<"front"<<endl;
                d.pop_front();}
            d.print();
        }
}
예제 #2
0
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;
}
예제 #3
0
int main(){
    Deque *d = new Deque();
    d->push_front(1);
    d->push_back(2);
    d->push_back(3);
    d->push_front(0);
    d->pop_front();
    d->pop_back();
    d->print();
    delete d;
    return 0;
}
예제 #4
0
파일: history.cpp 프로젝트: descent/progs
int main()
{

#if 0
  CString cstr;

  cstr.init("abc");
  cstr.print();
  printf("\n");

  Deque<CString> deque;
  deque.init();

  deque.push_back(cstr);

  CString ps;
  ps = "102";

  cstr.init("def");
  deque.push_back(cstr);

  deque.print();
  deque.back(0, ps);
  ps.print();
  printf("\n");
#endif

#if 1
  setlocale(LC_ALL, "");

  initscr();
  keypad(stdscr,true);
  curs_set(0);
  // KEY_UP
  // KEY_DOWN

  //Deque<string> deque;
  Deque<CString> deque;

  deque.init();

  move(0,0);
  int fail_time=1;
  while(1)
  {
    char str[128];
    getstr(str);
    move(0,0);
    //std::string s(str);
    CString s;
    s.init(str);
    if (deque.push_back(s) == false)
    {
      mvprintw(20, 0, "push back fail ## %d", fail_time++);
      deque.pop_front();
      deque.push_back(s);
    }

    deque.print();

    int index=0;
    noecho();
    //string ps;
    CString ps;
    while(1)
    {
      mvprintw(17, 0, "index: %d", index);
      refresh();
      int ch = getch();
      switch(ch)
      {
        case KEY_UP:
        {
          ++index;
          if (deque.back(index, ps) == true)
          {
            mvprintw(0, 15, "%s", ps.c_str());
          }
          else
            --index;
          break;
        }
        case KEY_DOWN:
        {
          --index;
          if (deque.back(index, ps) == true)
          {
            mvprintw(0, 15, "%s", ps.c_str());
          }
          else
          {
            //mvprintw(17, 5, "back fail");
            ++index;
          }
          break;
        }
        case 'q':
        {
          goto end;
        }
        default:
        {
          ungetch(ch);
          move(0, 0);
          goto outer;
          break;
        }
      }
      mvprintw(17, 0, "index: %d", index);
      refresh();
    }
    outer:
    echo();
  }
end:
  endwin();
#endif
  return 0;
}