1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // stkoptr1.cpp -- testing stack of pointers
- #include <iostream>
- #include <cstdlib> // for rand(), srand()
- #include <ctime> // for time()
- #include "stcktp1.h"
- const int Num = 10;
- int main()
- {
- std::srand(std::time(0)); // randomize rand()
- std::cout << "Please enter stack size: ";
- int stacksize;
- std::cin >> stacksize;
- // create an empty stack with stacksize slots
- Stack<const char *> st(stacksize);
- // in basket
- const char * in[Num] = {
- " 1: Hank Gilgamesh", " 2: Kiki Ishtar",
- " 3: Betty Rocker", " 4: Ian Flagranti",
- " 5: Wolfgang Kibble", " 6: Portia Koop",
- " 7: Joy Almondo", " 8: Xaverie Paprika",
- " 9: Juan Moore", "10: Misha Mache"
- };
- // out basket
- const char * out[Num];
- int processed = 0;
- int nextin = 0;
- while (processed < Num)
- {
- if (st.isempty())
- st.push(in[nextin++]);
- else if (st.isfull())
- st.pop(out[processed++]);
- else if (std::rand() % 2 && nextin < Num) // 50-50 chance
- st.push(in[nextin++]);
- else
- st.pop(out[processed++]);
- }
- for (int i = 0; i < Num; i++)
- std::cout << out[i] << std::endl;
- std::cout << "Bye\n";
- // std::cin.get();
- // std::cin.get();
- return 0;
- }
|