Читайте также: |
|
{
public: // различные функции-члены, включая перегрузку! && || ==!=
};
Выделите преимущества и недостатки каждого способа. Учтите контекст и проблемы преобразования, а также видимость имен.
12. Разработайте класс person, который содержит соответствующие члены для хранения имени, возраста, пола и телефонного номера. Напишите функции-члены, которые смогут изменять члены-данные индивидуально. Напишите функцию-член person::print(), которая печатает хорошо отформатированные данные о человеке.
13. Напишите функцию swap, которая меняет содержимое двух строк. Если вы поместили строку символов в стек и вытолкнули их во вторую строку, они появятся в обратном порядке. При перестановке двух строк необходимо оставить начальный порядок следования символов. Для того чтобы поменять местами две строки, используйте двустороннюю очередь. Строки будут храниться в двух символьных массивах одинаковой длины, но строки сами по себе могут иметь разные длины. Прототип функции: void swap(char s1[], char s2[]);
14. Определите dequeue (двустороннюю очередь), которая является симмет-ричной очередью, допускающей помещение и выталкивание с обеих сторон.
class dequeue
{ char s[max_len];
int bottom, top;
public:
void reset() {top = bottom = max_len / 2; top--;}
};
Объявите и реализуйте push_t, pop_t, push_t, pop_b, out_stack, top_of, bottom_of, empty и full. Функция push_t означает вталкивание на дно. Функция out_stack должна выводить стек от дна до вершины. Функция pop_t и pop_b соответствуют выталкиванию из вершины и выталкиванию со дна. Пустой стек обозначается наличием падения вершины ниже дна. Проверьте каждую функцию.
15. Расширьте тип данных двусторонняя очередь (dequeue), добавляя функцию-член relocate (перемещение). Если двусторонняя очередь полна, тогда вызывается relocate, и содержимое двусторонней очереди перемещается для уравновешивания свободной памяти около центра max_len/ 2 массива s. Функция должна возвращать true, если relocate успешно, false, если она терпит неудачу
Дата добавления: 2015-07-25; просмотров: 122 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Задания к лабораторной работе 1 | | | Boolean dequeue::relocate(). |