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

Добавление элемента в начало списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ЕСТЬ КОД НУЖЕН ВВОД И ВЫВОД В ФАЙЛ СДЕЛАТЬ http://www.cyberforum.ru/cpp-beginners/thread832829.html
заполнить массив змейкой начиная с 1 элемента пример 1 2 3 4 8 7 6 5 9 10 11 12 ............. РЕЗУЛЬТАТ ЗАПИСАТЬ В ФАЙЛ И ВЫВЕСТИ НА ЕКРАН ИЗ ФАЙЛА НЕОБХОДИМО ИСПОЛЬЗОВАТЬ ПРОЦЕДУРЫ ЕСЛИ НАДО ЕСТЬ КОД НА пАСКАЛЕ: uses crt; var i,j,k,n,m: integer;
C++ случайный выбор Прошу помощи... Составить программу случайного выбора очередного из списка, в котором 3 мальчика и 5 девочки, причем для девочек вероятность выбора в два раза меньше. http://www.cyberforum.ru/cpp-beginners/thread832822.html
"Маленькая задачка" (прочитать файл по словам и создать из него список) C++
Всем доброго времени суток ! Хотел бы попросить помощи в данной задачи на C++, а точнее написать её и растолковать. Вот данное условие : "Есть выходной текстовый файл. Нужно прочитать файл по словам и создать из него список." Буду благодарен за помощь :)
нерекурсивный вариант процедуры обхода дерева в симметричном порядке C++
Не могу понять, почему при нерекурсивном обходе левый потомок на уровень выше смещается(( #include <iostream> #include <conio.h> #include <math.h> #include <stdlib.h> #include <time.h> const char TAB=" "; const char ERROR_INCORRECT_INT="Введено некорректное числовое значение, пожалуйста повторите ввод."; char input_inf; using namespace std;
C++ Определить номер счастливых билетов для троллейбуса в диапазоне http://www.cyberforum.ru/cpp-beginners/thread832811.html
Описать алгоритм решения задачи в виде блок схемы алгоритма: Определить номер счастливых билетов для троллейбуса в диапазоне А1А2А3А4А5А6 до В1В2В3В4В5В6, подсчитать их количество и вывести на экран (Счастливый билет---сума первых трех цифр = суме последних трех(Диапазон чисел вводит с клавиатуры )) Составить программу в соответствие с алгоритмом.
C++ Функция, которая возвращает произведение элементов одномерного массива Написать функцию, которая возвращает произведение элементов одномерного массива. Ошибок нет. Всё время возвращает значение "не гласная" при вводе любых и согласных, и гласных букв. В чём ошибка? Вроде правильно функция значение возвращает...? #include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include "locale.h" int gl(char ch); int main() { char a; подробнее

Показать сообщение отдельно
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 19:11     Добавление элемента в начало списка
aleksandr_t94, давайте дам первый совет, делайте все с помощью функций, модульное программирование, слышали? я что-то не пойму, вы двусвязный список пытаетесь сделать?

Добавлено через 2 минуты
aleksandr_t94, вот вам нормальная функция добавления

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
template <typename T>
List *addToBack(List *Head, const T value)                  
{
    List *Ptr = new List;
    Ptr -> data = value;
 
    if(Head == NULL)
    {
        Head = Ptr;
        Ptr -> next = NULL;
    }
    else
    {
        List *temp = Head;
 
        while(temp -> next != NULL)
            temp = temp -> next;
                
            temp -> next = Ptr;
            Ptr -> next = NULL;
    }
 
    return Head;
}
Добавлено через 1 минуту
не посмотрел что вам нужно в начало добавлять, тогда вот

C++
1
2
3
4
5
6
7
8
9
10
11
template <typename T>
List *addToFront(List *Head, const T value)                 
{
    List *Ptr = new List;
    Ptr -> data = value;
 
    Ptr -> next = Head;
    Head = Ptr;
 
    return Head;
}
Добавлено через 8 минут
aleksandr_t94, а если по существу, то вот я подправил ваш вариант

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
#include <stdio.h>
#include <stdlib.h>
 
struct Node
{
    int num;
    Node *next;
}*Head;
 
int main()
{
    int i;
    Head = NULL;                    //голова списка
 
    for(i=0;i<10;i++)
    {
        if(Head == NULL){
            Head = (struct Node*)malloc(sizeof(Node));
            Head -> num = i;
            Head -> next = NULL;
        }
        else
        {
            Node *tmp = (struct Node*)malloc(sizeof(Node));
            tmp -> num = i;
            tmp -> next = Head;
            Head = tmp;
        }
    }
   
    Node *tmp_h = Head; 
    while(tmp_h != NULL)
    {
        printf("%d\n", tmp_h -> num);
        tmp_h = tmp_h -> next;
    }
 
    return 0;
}
 
Текущее время: 13:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru