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

не могу разобраться в функции - C++

Восстановить пароль Регистрация
 
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
17.02.2013, 20:26     не могу разобраться в функции #1
нашел в инете функцию добавление в список, но не могу разобраться что означает переменная link

C++
1
2
3
4
5
6
7
void add(LIST *link,int data)
{
    LIST *list = new LIST;
    list->data = data;
    list->next  = link->next;// что здесь делается
    link->next = list; // что здесь делается ??
}
Как объявлять переменную link в main() функции, то есть что именно ей присваивать ?

я бы эти 2 строчки убрал бы и просто сделал
C++
1
list-next = NULL;
если не трудно поясните, что лучше
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 20:26     не могу разобраться в функции
Посмотрите здесь:

Не могу разобраться с отработкой рекурсивной функции C++
Не могу разобраться с str_format C++
Функции и файлы! Для продвинутых, я не могу разобраться. C++
не могу разобраться с синтаксисом C++
C++ не могу разобраться с функциями ( значение функции, заданной с помощью ряда)
посмотрите, не могу разобраться) C++
C++ Не могу разобраться с ошибкой
C++ Не могу разобраться с кодом
C++ Табуляция, не могу разобраться
C++ Не могу разобраться с void в c++
C++ Не могу разобраться как сделать указатель функции с динамич. массивом
Не могу разобраться с функциями в коде. Что это за функции Intreader , Bitwriter C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
17.02.2013, 20:30     не могу разобраться в функции #2
Цитата Сообщение от Maratovich Посмотреть сообщение
Как объявлять переменную link в main() функции, то есть что именно ей присваивать ?
LIST *link = new LIST;

Вот если бы Вы еще и саму структуру скинули)
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
17.02.2013, 20:33  [ТС]     не могу разобраться в функции #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct LIST
{
    int data;
    LIST *next; 
};
 
void add(LIST *link,int data)
{
    LIST *list = new LIST;
    list->data = data;
    list->next  = link->next;
    link->next = list;
}
daslex
1088 / 498 / 102
Регистрация: 02.08.2011
Сообщений: 2,449
17.02.2013, 20:48     не могу разобраться в функции #4
C++
1
2
3
4
5
6
7
void add(LIST *link,int data)
{
    LIST *list = new LIST; //Чтобы не потерять начало создается локальный объект, указывающий на начало списка
    list->data = data; //Записываем значение в информационную часть свежеиспеченного звена
    list->next  = link->next; //Записываем указатель в адресную часть свежеиспеченного звена на следующий элемент списка
    link->next = list; // Здесь происходит копирование локального звена list в основной список
}
Также имеет смысл присмотреться где list и где link. Такие похожие названия глаза мозолят и путать могут.
Как-то так
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
17.02.2013, 20:49     не могу разобраться в функции #5
Написал пример. Как я это вижу
Если непонятно, то пишите
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
#include <iostream>
 
using namespace std;
 
struct List
{
    List(int d): next(), data(d) {}
    List *next;
    int data;
};
 
void addList(List *ex_list,int data)
{
    List *new_list = new List(data);
    ex_list->next = new_list;
}
 
List* multiAdd(List *ex_list,int data)
{
    List *new_list = new List(data);
    ex_list->next = new_list;
    return new_list;
}
 
 
void PrintList(List *b_list)
{
    if (b_list!=NULL)
    {
        cout<<b_list->data<<" ";
        PrintList(b_list->next);
    }
}
 
int main()
{
    List *MyList = new List(1);
 
    List *temp_list = MyList;
 
    for(int i = 2; i!=11; i++)
        temp_list = multiAdd(temp_list,i);
 
    PrintList(MyList);
 
    return 0;
}
Yandex
Объявления
17.02.2013, 20:49     не могу разобраться в функции
Ответ Создать тему
Опции темы

Текущее время: 18:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru