Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Fedor N
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 17
1

Шаблон класса Node для узла связного списка

23.06.2012, 11:18. Просмотров 1453. Ответов 3
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста реализовать и протестируйте функцию:
template <class T>
Node<T> *GetNode(const T &item, Node<T> *nextPtr = NULL);
создающую в динамической памяти узел-объект класса Node с данным item и указателем на следующий узел nextPtr.

nodelib.h
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
45
46
47
48
49
50
51
52
53
54
55
56
template <class T>
class Node
{
    private:
        // указатель на адрес следующего узла
        Node<T> *next;
    public:
        T data;
        //конструктор
        Node(const T& item, Node<T> *ptrnext = NULL):
                    data(item), next(ptrnext) {return;}
        // Вставка следующим
        void InsertAfter(Node<T> *p)
        {
            p->next = next;
            next = p;
        }
        // Удаление следующего
        Node<T> *DeleteAfter(void);
        // Получение адреса следующего
        Node<T> *NextNode(void) const {return next;}
};
 
template <class T>
Node<T>* Node<T>::DeleteAfter(void)
{
    // если нет следующего возвратить NULL
    if (next==NULL) return NULL;
    // сохранить адрес удаляемого узла
    Node<T> *tempPtr = next;
    // текущий указывает на узел, следующий за удаляемым
    next = tempPtr->next;
    // возвратить указатель на удаляемый узел
    return tempPtr;
}
 
template <class T>
void PrintNodeList(Node<T> * head)
{
   if (!head) {cout <<"\nList empty"; return;}
   cout << '\n';
   while (head)
   {
    cout << head->data << '\t';
      head = head->NextNode();
   }
}
 
template <class T>
Node<T> *BuildNodeList(T M[], int n)
{
    Node<T> *head=NULL;
   for (int i = n-1; i>=0; i--)
    head= new Node<T>(M[i],head);
   return head;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2012, 11:18
Ответы с готовыми решениями:

Разработать шаблон класса для работы со стеком реализованным в виде связного списка
Разработать шаблон класса для работы со стеком реализованным в виде связного...

Шаблон для узла односвязного списка
Есть узел typedef struct Var { String varname; int value; ...

Разработать шаблон класса для реализации односвязного списка
Помогите пожалуйста разработать шаблон класса для реализации односвязного...

Реализовать шаблон класса для хранения динамического списка
Нужно реализовать: 1.Операции вставки элемента в начало списка 2.Операцию...

Разработать метод класса, в котором будет выполняться обращение связного списка согласно условию
Разработать метод класса, в котором будет выполняться обращение связного списка...

3
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
23.06.2012, 11:20 2
del del
0
Invader_Zim
Twilight Parasite
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
23.06.2012, 12:20 3
используй list и не парься
0
Fedor N
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 17
23.06.2012, 17:36  [ТС] 4
Все сделал. Тема закрыта.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2012, 17:36

Спроектировать шаблон класса spisok для реализации односвязного линейного списка. Не работает сортировка
Здравствуйте! Очень нужна помощь в реализации программы. Задание:...

функция для нахождения длины связного списка
Помогите написать функцию для нахождения длины связного списка. реализуйте...

Шаблоны функций, Ошибка: для использования класса шаблон требуется список аргументов шаблон
Есть у меня 3 структуры Трамвай , Троллейбус , Автобус. Для автобуса определены...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru