Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Hellner
0 / 0 / 0
Регистрация: 17.03.2015
Сообщений: 14
1

Создать и заполнить линейный односвязный список

22.05.2015, 22:20. Просмотров 895. Ответов 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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct Node
{
    int val;
    struct Node *next;
} Node;
void PushList(Node** head, int value)
{
    Node *tmp = (Node*)malloc(sizeof(Node));
    tmp->val = value;
    tmp->next = (*head);
    (*head) = tmp;
    free(tmp);
}
void PrintList(const Node *head)
{
    while (head != NULL)
    {
        printf("%d", head->val);
        head = head->next;
    }
    printf("\n");
}
void main()
{
    int i;
    Node *head = NULL;
    for (i = 0; i<10; i++)
        PushList(head, i);
    PrintList;
}
Вроде бы все правильно, никаких ошибок не выдает, но программа не работает. Подскажите пожалуйста что не так!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2015, 22:20
Ответы с готовыми решениями:

На примере показать простой односвязный линейный список работающий с int
Доброго времени суток. Не могу разобраться до конца со связными списками. Есть просьба если не...

Создать односвязный список о книгах
Помогите реализовать односвязный список ... #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Создать односвязный список из структур
Помогите пожалуйста..Сколько читаю ничего не понимаю(Большинство с классами...которые мы не...

Создать односвязный упорядоченный список
Здравствуйте, помогите пожалуйста, нужно написать программу. Вводим числа с клавиатуры и сразу...

Из введенных слов создать односвязный кольцевой список
Доброй ночи Задача звучит так: Из введенных слов создать односвязный кольцевой список. Далее,...

1
anmartex
...
1714 / 1207 / 908
Регистрация: 12.02.2013
Сообщений: 1,978
24.05.2015, 13:41 2
Hellner, читайте ошибки (строки 15, 31, 32):
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct Node
{
    int val;
    struct Node *next;
} Node;
void PushList(Node** head, int value)
{
    Node *tmp = (Node*)malloc(sizeof(Node));
    tmp->val = value;
    tmp->next = (*head);
    (*head) = tmp;
    free(tmp); // Ни в коем случае. Ведь этот узел должен хранить значение
}
void PrintList(const Node *head)
{
    while (head != NULL)
    {
        printf("%d", head->val);
        head = head->next;
    }
    printf("\n");
}
void main()
{
    int i;
    Node *head = NULL;
    for (i = 0; i<10; i++)
        PushList(head, i); // Нужно передавать не указатель, а его адрес
    PrintList; // Вообще "абракадабра". Функция так не вызывается. Тем более она требует передачу параметра head
}
Кликните здесь для просмотра всего текста
Работающий вариант:
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct Node {
    int val;
    struct Node* next;
} Node;
 
void PushList(Node** head, int value) {
    Node* tmp = (Node*)malloc(sizeof(Node));
    tmp->val = value;
    tmp->next = (*head);
    (*head) = tmp;
}
 
void PrintList(const Node* head) {
    while (head != NULL) {
        printf("%d ", head->val);
        head = head->next;
    }
    printf("\n");
}
 
int main() {
    int i;
    Node* head = NULL;
    for (i = 0; i < 10; i++) {
        PushList(&head, i);
    }
    PrintList(head);
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2015, 13:41

Создать односвязный список и добавить в него элементы
помогите, пожалуйста. нужен код: создать односвязный список, тип информационного поля char*,...

Создать кольцевой односвязный список, элементы которого будут вводиться с клавиатуры
Нужно сделать кольцевой односвязный список, элементы которого будут вводиться с клавиатуры. Я...

Создать новый односвязный список, который содержит элементы заданного списка в порядке убывания
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит...


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

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

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