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

Создать связанный список - C++

Восстановить пароль Регистрация
 
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
20.11.2013, 04:29     Создать связанный список #1
Если создать структуру я могу, то со связными списками совсем беда.
Миниатюры
Создать связанный список  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 04:29     Создать связанный список
Посмотрите здесь:

C++ Однонаправленный связанный список
Связанный двусторонний список C++
C++ Связанный список.
C++ Связанный список
Связанный список C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
21.11.2013, 14:12  [ТС]     Создать связанный список #2
Создайте структуру с двумя переменными: int и указателем на другой экземпляр этой же структуры. Напишите функцию, которая получает адрес одной из структур и значение типа int (длину списка, который требуется построить). Функция строит цепочку структур (связанный список), начиная с первого аргумента (начала списка), при этом каждая структура должна содержать указатель на следующую структуру в списке. Новые экземпляры структур создаются оператором new, а в переменной int: хранится счетчик(номер создаваемого объекта). В последней структуре списка присвойте указателю нулевое значение (признак конца списка). Напишите вторую функцию, которая получает начало списка, перебирает его до конца и выводит
для каждого элемента значение указателя и переменную int .

Добавлено через 8 часов 46 минут
кто подсобит?)

Добавлено через 5 часов 38 минут


Добавлено через 17 часов 49 минут


Добавлено через 1 час 13 минут
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
#include <iostream>
 
struct spisok{
    int value;
    spisok * next;
};
 
void create(spisok*s,int size){
    if (s==NULL){
        //std::cout<<"0";
        spisok*temp=new spisok;
        temp->value=0;
        temp->next=NULL;
        s=temp;
        create(s,size);
    }
    else if(s->value<size-1) {
    spisok*temp=new spisok;
    temp->value=(++s->value);
    temp->next=NULL;
    s->next=temp;
    //std::cout<<s->value;
        create(s->next,size);
    }
    
}
 
void print(spisok*s){
    ////std::cout<<"a";
    std::cout<<(s->value);
    if (s->next!=NULL) print(s->next);
}
 
 
 
 
 
 
void main(){
    spisok*qq=NULL;
    std::cout<<qq<<std::endl;
    create(qq,10);
    std::cout<<qq<<std::endl;
    //print(qq);
 
}
подкорректируйте так, чтобы сохранялись адреса в указателях.
LuxArt
33 / 20 / 2
Регистрация: 14.11.2013
Сообщений: 85
21.11.2013, 14:15     Создать связанный список #3
Цитата Сообщение от helloy Посмотреть сообщение
C++
1
2
3
4
struct spisok{
* * int value;
* * spisok * next;
};
Название у этой структуры "плохое". Ведь это не список а узел.
nikmoon
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 3
21.11.2013, 14:18     Создать связанный список #4
Вам бы еще про указатели почитать.
Код
   spisok*qq=NULL;
   create(qq,10);
Как думаете, какое значение передается внутрь функции create?
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
21.11.2013, 14:22  [ТС]     Создать связанный список #5
Цитата Сообщение от LuxArt Посмотреть сообщение
Название у этой структуры "плохое". Ведь это не список а узел.
что за бред?
//Структура - элемент стека
struct spisok{
int value; //данные элемента структуры
spisok *next; //Указатель для связи между структурами такого же типа
};

обоснуйте примерами

Добавлено через 1 минуту
Цитата Сообщение от nikmoon Посмотреть сообщение
Вам бы еще про указатели почитать.
Код
   spisok*qq=NULL;
   create(qq,10);
Как думаете, какое значение передается внутрь функции create?
ха ха ха)))
точно.
вот я лох
LuxArt
33 / 20 / 2
Регистрация: 14.11.2013
Сообщений: 85
21.11.2013, 14:35     Создать связанный список #6
Цитата Сообщение от helloy Посмотреть сообщение
обоснуйте примерами
Я примерно вот так cделал бы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Узел
struct node
{
    int value;      // Данные
    node *next;     // Указатель на следующий узел
};
 
 
// Список
struct spisok
{
    node *head;     // Указатель на начало списка
    node *tail;     // Указатель на конец списка
    // Тут добавить разные функции для работы со списком
};
Добавлено через 6 минут
helloy, ну что похоже это на бред?
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
21.11.2013, 14:37  [ТС]     Создать связанный список #7
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
#include <iostream>
 
struct spisok{
    int value;
    spisok * next;
};
 
void create(spisok*s,int size){
    if(s->value<size-1) {
    spisok*temp=new spisok;
    temp->value=s->value+1;
    temp->next=NULL;
    s->next=temp;
    create(s->next,size);
    }
    
}
 
spisok * create(){
    spisok*temp=new spisok;
    temp->value=0;
    temp->next=NULL;
    return temp;
}
 
void print(spisok*s){
    std::cout<<(s->value);
    if (s->next!=NULL) print(s->next);
}
 
void main(){
    spisok*qq=NULL;
    std::cout<<qq<<std::endl;
    qq=create();
    std::cout<<qq<<std::endl;
    create(qq,10);
    std::cout<<qq<<std::endl;
        print(qq);
 
}
меня интересует только 1 как объединить spisok * create и void create?

Добавлено через 1 минуту
Цитата Сообщение от LuxArt Посмотреть сообщение
Я примерно вот так cделал бы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Узел
struct node
{
    int value;      // Данные
    node *next;     // Указатель на следующий узел
};
 
 
// Список
struct spisok
{
    node *head;     // Указатель на начало списка
    node *tail;     // Указатель на конец списка
    // Тут добавить разные функции для работы со списком
};
Добавлено через 6 минут
helloy, ну что похоже это на бред?
это не нужно для моего задания. Прочитайте условие!
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
21.11.2013, 14:47  [ТС]     Создать связанный список #8
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
#include <iostream>
 
struct spisok{
    int value;
    spisok * next;
};
 
void create(spisok*s,int size){
     if(s->value<size-1) {
    spisok*temp=new spisok;
    temp->value=s->value+1;
    temp->next=NULL;
    s->next=temp;
    create(s->next,size);
    }
}
 
void print(spisok*s){
    std::cout<<(s->value);
    if (s->next!=NULL) print(s->next);
}
 
void main(){
    spisok hello;
    hello.value=0;
        hello.next=NULL;
    create(&hello,10);
        print(&hello);
}
вот, что наверное хотели.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 16:07     Создать связанный список
Еще ссылки по теме:

Связанный список C++
C++ Связанный список
Связанный список. Создать, записать в связный список последовательность слов,обозначающих месяцы года,заданных пользователем C++

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

Или воспользуйтесь поиском по форуму:
LuxArt
33 / 20 / 2
Регистрация: 14.11.2013
Сообщений: 85
21.11.2013, 16:07     Создать связанный список #9
Цитата Сообщение от helloy Посмотреть сообщение
вот, что наверное хотели.
Наверное
Миниатюры
Создать связанный список  
Yandex
Объявления
21.11.2013, 16:07     Создать связанный список
Ответ Создать тему
Опции темы

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