Простая лабораторная работа по ООП

Все проекты
Прошло времени:   55 лет 5 месяцев 2 недели 1 день 3 часа 47 минут
1. Спроектировать класс двунаправленный список со следующим интерфейсом
class DoublyLinkedList{
ListNode *head;
public:

DoublyLinkedList(void);//default constructor
~DoublyLinkedList(void);//destructor
//member functions
int size(); //Returns the number of elements in the list.

bool empty(); //Returns true if empty, false otherwise.
void clear(); //Removes all elements from the list.
void push_back(const ListNode &);// Adds node to the end of the list.
void push_front(const ListNode &);// Adds node to the front of the list.
void pop_front();// Removes the first element of the list.
void pop_back();// Removes the last element of the list.
void insert_ord( const ListNode &);//Inserts node preserving list ordering
void sort();//Sorts list in nondescending order
bool insert_after(char *dat, const ListNode &nd);// Inserts nd after the
//the node with dat. Returns
//true on success
void operator=(const DoublyLinkedList &);// Overloaded of the assignment
//operator
void merge(DoublyLinkedList &);//Removes the elements from the argument
//list, inserts them into the target list, //and orders the new, combined set of //elements in nondescending order
void erase(char *dat);// Removes all nodes with dat
void unique();//Removes adjacent duplicate elements or adjacent elements
void assign(DoublyLinkedList &dl, int first, int last);//deletes elements
//from argument list between first and last //positions and adds them to the end of
//target list
void splice(int where, const DoublyLinkedList &dl);//inserts elements of
//argument list in target list starting from
//where position
void splice(int where, const DoublyLinkedList &dl, int first, int
last);// inserts elements of argument list from first to
//last positions in target list starting from
//where position


void print();//prints list
void print_bkw();//prints list backward

private:
//служебные функции
};

Элементами списка являются экземпляры класса
class ListNode{
char *data;
ListNode *prev;
ListNode *next;
public:
friend class DoublyLinkedList;
ListNode();//default constructor
ListNode(char *_data );
~ListNode(void);
};


Mетоды класса DoublyLinkedList .
size() – возвращает число элементов списка

empty() - возвращает true если список пуст и false – в противном случае
clear() – удаляет все элементы списка
push_front(const ListNode &nd) – вставляет копию nd в начало списка

Пример использования
DoublyLinkedList *ls = new DoublyLinkedList;
ListNode nd1("brian");
ls->push_front(nd1);


push_back(const ListNode &nd) – вставляет копию nd в конец списка

pop_front() – удаляет первый элемент списка
pop_back()– удаляет последний элемент списка
insert_ord( const ListNode &nd) – вставляет копию nd в список таким образом,
чтобы не нарушалась его упорядоченность
sort() – сортирует список в порядке неубывания
insert_after(char *dat, const ListNode &nd) – вставляет копию nd в список после
узла, который содержит dat. Возвращает true в случае успеха
operator=(const DoublyLinkedList &) – перегруженый оператор присваивания
merge(DoublyLinkedList &lst) – удаляет элементы lst, втавляет их в список и упорядочивает полученный список в порядке неубывания
erase(char *dat)- удаляет все узлы с dat
unique() – удаляет все смежные повторяющиеся узлы (список предварительно д.б.
отсортирован)
assign(DoublyLinkedList &dl, int first, int last) – удаляет элементы от позиции
first до позиции last из списка dl и добавляет их в конец текущего.
void splice(int where, const DoublyLinkedList &dl) – вставляет элементы списка dl в текущий, начиная с позиции where.
void splice(int where, const DoublyLinkedList &dl, int first, int last) - вставляет элементы списка dl, от позиции first до last, в текущий, начиная с позиции where.
Примечание. Отсчет позиций начинается с нуля.
print() – печатает список от головы к хвосту
print_bkw()– печатает список от хвоста к голове



Результаты работы оформить в вде проекта С++-программы, включающей:
1. Header-файлы ListNode.h и DoublyLinkedList.h.
2. Файлы определениий ListNode.срр и DoublyLinkedList.срр.
3. Файла тест-драйва, демонстрирующего работоспособность функций.
    Предложения фрилансеров
    Бюджет: 1 руб.
    Сроки: 1 часов
    dus9iw [25.12.2013 02:39]  
    что по срокам ?
    С Уважением ,
    Евгений Патяка
    Видеть контакты заказчика и оставлять свои предложения по проекту могут только зарегистрированные и авторизованные пользователи.
    Зарегистрируйтесь или войдите на сайт под своим именем.

    Фриланс-биржа Web-lance.net предлагает огромные возможности по поиску работы как опытным специалистам в сфере интернет-бизнеса, так и новичкам, только постигающим основы заработка во всемирной сети. Здесь вы найдете сотни интересных вакансий в сфере дизайна, копирайтинга, программирования, верстки, контент-менеджмента и других сфер деятельности востребованных среди интернет-пользователей. Также, зарегистрировавшись на бирже, вы сможете разместить здесь свою анкету, указав в ней свою специализацию и контактные данные, что даст возможность потенциальным клиентам, связаться с вами для дальнейшего взаимовыгодного сотрудничества. Сайт удобно структурирован и разбит на тематические разделы, что позволяет даже неопытным заказчикам точно определять категорию, в которую стоит публиковать их проект, в тоже время, упрощая исполнителям поиск интересующих их вакансий. Кроме того на портале имеется раздел Блоги где зарегистрированные пользователи могут публиковать материалы, а также Форум на котором исполнители и заказчики смогут обсудить рабочие моменты, а также пообщаться на интересующие их темы. Приятной вам работы на Web-lance.net - бирже, где вы сможете найти лучших исполнителей и самые интересные проекты.

    Если вас интересует верстка полиграфического издания, начиная от листовки, заканчивая каталогом, то верстальщик – это тот специалист, который выполнит всю работу по готовому, предложенному вами, дизайн-макету, или без его наличия.