#define __MINMAX_DEFINED // use STL's generic min and max templates
#include "list.h" // include STL-list implementation
#include <iostream.h>
void main (void)
{
list<int> bit_seq; // define a list of int
int input = 0; // value read from cin
int count_1 = 0; // counter for number of 1's
cout << "Insert values 0 and 1, another value to stop input..." << endl;
while (cin >> input) {
if (!(input == 0 || input == 1)) break;
bit_seq.push_back (input); // list member function push_back
}
// create a new list for bit_stuffing
list<int> bit_stuffed_seq (bit_seq);
// define loop iterators
list<int>::iterator first = bit_stuffed_seq.begin();
list<int>::iterator last = bit_stuffed_seq.end();
// bit stuff loop
while (first != last) {
if (*first == 0)
count_1 = 0; // reset 1's-counter
else if (*first == 1)
count_1++; // increment number of
// consecutive 1's
first++; // go to the next list element
if (count_1 == 5) {
// insert a 0 after the fifth consecutive 1
bit_stuffed_seq.insert (first, 0);
count_1 = 0; // reset counter
}
}
}
Johannes Weidl (J.Weidl@infosys.tuwien.ac.at) - Apr 16, 1996