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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
thejadefalcon
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 41
#1

Односвязный список - C++

17.12.2013, 19:34. Просмотров 303. Ответов 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
45
46
47
48
49
50
51
52
53
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
struct number
{
    int num;
    number *next; /* ссылка на следующий адрес */
};
 
void Init(number **begin)
{
    int n;
    *begin = new number;
    
    printf("Enter the count of elements of the list:\n");
    scanf("%d", &n);
    int *A = new int[n];
    printf("Enter the elements:\n");
    for (int i = 0; i < n; i++)
        scanf("%d", &A[i]);
    (*begin)->next = NULL;
    number *end = (*begin);
    for (int i = 0; i < n; i++)
    {
        end->next = new number;
        end = end->next;
        end->num = A[i];
        end->next = NULL;
    }
}
void Print(number*b)
{
    number*print = b;
    while (print)
    {
        cout << " ";
        cout << print->num;
        print = print->next;
    }
 
}
 
int main()
{
    number *begin = NULL;
    Init(&begin);
    Print(begin);
    system("pause");
    return 0;
}
Добавлено через 2 минуты
Скриншот
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 19:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Односвязный список (C++):

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список - C++
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных односвязный список С++

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов - C++
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный список студентов. Помогите пожалуйста,...

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

Односвязный список - C++
Посмотрите программу, правильно ли я вывожу список? Почему список выводится только из 7 цифр, и как можно написать с помощью функций?...

Односвязный список - C++
Есть связной список. У класса есть метод добавления элементов(additem()). Надо исправить метод, чтобы он добавлял элемент не в начало, а в...

Односвязный список - C++
Помогите пожалуйста доделать программу, а то я не могу, надо именно в таком формате (векторное представление списка) Само задание - к...

1
Aloir
218 / 218 / 13
Регистрация: 17.12.2010
Сообщений: 692
17.12.2013, 20:03 #2
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
struct number
{
    number()
    {
        num = 0;
        next = NULL;
    }
    int num;
    number *next; /* ссылка на следующий адрес */
};
 
void Init(number **begin)
{
    int n;
    *begin = new number;
 
    printf("Enter the count of elements of the list:\n");
    scanf("%d", &n);
    int *A = new int[n];
    printf("Enter the elements:\n");
    for (int i = 0; i < n; i++)
        scanf("%d", &A[i]);
 
    number *end = (*begin);
    for(int i = 0 ; i < n; i++)
    {
        end->num = A[i];
        if(i <n-1)
        {
            end->next = new number; 
            end = end->next;
        }
    }
    delete []A;
}
void Print(number*b)
{
    number*print = b;
    while (print)
    {
        cout << " ";
        cout << print->num;
        print = print->next;
    }
 
}
 
int main()
{
    number *begin = NULL;
    Init(&begin);
    Print(begin);
    system("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 20:03
Привет! Вот еще темы с ответами:

Односвязный список - C++
Смотрю уроки по односвязному списку. У автора в 37 строке кода происходит инициализация структуры. Но как программа определит, что значения...

Односвязный список - C++
Начал читать про односвязные списки и никак не пойму, зачем мы выделяем память под первый элемент списка? Мы сначала определяем указатель...

Односвязный список - C++
Доброго времени суток. Помогите, пожалуйста, решить задачу: Реализовать односвязный список, с возможностью его разворота в обратную...

Односвязный список - C++
Доброй ночи! Вроде все написала правильно, прога должна читать из файла KR8+.txt и записывать один элемент в KR8.txt в конец списка... но...


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

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

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