Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Спроектировать класс двунаправленный список со следующим интерфейсом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компиляция для win32 bit на win64 http://www.cyberforum.ru/cpp-beginners/thread1054413.html
День добрый. Подскажите как в Visual Studio (или еще где) на 64 битной машине (win 8 ) скомпилировать консольное приложение, которое смогло бы запуститься на 32 битное системе (win xp sp3) ....
C++ Вычислить значение выражения poszhalyista pomogite napisat cod na c++ x-10sinx+|x^4-x^5| http://www.cyberforum.ru/cpp-beginners/thread1054411.html
Заменить на нули те эл. каждой строки, которые не повторяются в своём столбце C++
Помогите написать цикл, плиз.
C++ Рассчитать число столбцов в которых какой либо эл. делится без остатка на другой
Рассчитать число столбцов в которых какой либо эл. делится без остатка на другой. Не пойму в чём проблема. Считает не правильно...( #include<iostream> using namespace std; int main() { int...
C++ Сортировка методом Шелла http://www.cyberforum.ru/cpp-beginners/thread1054381.html
Нужно отсортировать методом Шелла все столбцы матрицы 10х10, чтобы все элементы шли за уменьшением. Написал код, но на экран выводит матрицу, у которой все элементы = -852150451. Может...
C++ Вычисление номера рядка и столбика массива с наибольшей суммой элементов на языке С++ Ребята помогите пожалуйста написать код,задание такое :Создать класс для представления и обработки данных,сделать обработку элементов прямоугольной матрици размера m*n. Определить номер рядка и... подробнее

Показать сообщение отдельно
Sasha_Sasha
Сообщений: n/a

Спроектировать класс двунаправленный список со следующим интерфейсом - C++

24.12.2013, 08:33. Просмотров 235. Ответов 0
Метки (Все метки)

1. Спроектировать класс двунаправленный список со следующим интерфейсом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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:
    //служебные функции  
};
Элементами списка являются экземпляры класса
C++
1
2
3
4
5
6
7
8
9
10
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 в начало списка

Пример использования
C++
1
2
3
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. Файла тест-драйва, демонстрирующего работоспособность функций.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru