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

Вложенные структуры. Ошибка с создании вложенного двунаправленного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить начальные пробелы из введенной с клавиатуры строки http://www.cyberforum.ru/cpp-beginners/thread1157356.html
Помогите написать программу для Microsoft Visual Studio Вот что надо сделать: Написать программу, которая удаляет начальные пробелы из введенной с клавиатуры строки.
C++ Вычислить сумму ряда Дано действительное число х(0<x<=1). Вычислить сумму ряда с точностью Eps=10^-6 и указать количество слагаемых. \sum_{k=1}^{\propto }\frac{{(-1)}^{k}*{x}^{2*k+n}}{(k+n)!*k!} http://www.cyberforum.ru/cpp-beginners/thread1157355.html
C++ Двусвязные структуры
Помогите разобарться: 1)Компилятор выдает ошибку в строке (*first)->pred = tmp;, но не понимаю, почему... 2)И правильное ли я написал добавление элемента в двусвязный список? Легко ли будет при такой реализации сортировать и т.д. 3)И не могли бы немного пояснить как происходит передача указателей например тут (*first)->pred = tmp; и в чем отличие от передаче по ссылке и зачем **first...
Как выделить память под динамический двумерный массив C++
Добрый день, достаточно простой вопрос, но почему-то он возник, и нагуглить ответ я не смог. Обычно выделял память под двумерный массив следующей командой float **mas = new float *; Однако, как я понимаю, она выделяет память под квадратную матрицу размером M, т.е. одинаковое количество строк и столбцов. А что если мне нужна не квадратный динамический массив, а динамический массив N * M ? Как...
C++ Подсчитать сумму элементов в тех строках матрицы, где нет отрицательных элементов http://www.cyberforum.ru/cpp-beginners/thread1157340.html
Здравствуйте. я совсем не разбираюсь в программировании, но нужно сдать лабу, не могли бы вы мне помочь. я попыталась написать программу но она не работает. мне нужно подсчитать сумму элементов в тех строках матрицы, где нет отрицательных элементов. т.е сложить первые две строки в моем случае, но у меня получается он складывает все положительные. #include "stdafx.h" #include <iostream>...
C++ Ошибка в преобразовании строки в double Почему вот тут все правильно, то есть 5.5 остается 5.5: #include <iostream> void main( int ArgC, char *ArgV ) { char *str = new char; gets(str); _CRT_DOUBLE crt; _atodbl(&crt,str); std::cout << crt.x << std::endl; подробнее

Показать сообщение отдельно
onlwork
1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 53

Вложенные структуры. Ошибка с создании вложенного двунаправленного списка - C++

25.04.2014, 17:57. Просмотров 343. Ответов 3
Метки (Все метки)

Доброго времени суток.
Хочу представить граф в виде списка смежности, но у меня компилятор выдает кучу ошибок, помогите разобраться пожалуйста.

Заголовочный файл, описана структура:
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
#include <stdio.h>
class CGraph {
private:
    struct Graph{
        int mainVertex;
        Graph * nextMainVertex;
        Graph * prevMainVertex;
        int numberVertex;
 
        Graph(int newMainVertex, Graph *newNextMainVertex = NULL, Graph *newPrevMainVertex = NULL)
        {
            mainVertex = newMainVertex; 
            nextMainVertex = newNextMainVertex;
            prevMainVertex = newPrevMainVertex;
        }
        struct adjacentVertex{
            int Vertex;
            adjacentVertex * nextAdjacentVertex;
            adjacentVertex * prevtAdjacentVertex;
 
            adjacentVertex(int newVertex, adjacentVertex *newNextAdjacentVertex = NULL, 
                adjacentVertex *prevNextAdjacentVertex = NULL)
            {
                Vertex = newVertex; 
                nextAdjacentVertex = newNextAdjacentVertex;
                prevtAdjacentVertex = prevNextAdjacentVertex;
            }
    };
};
 
    Graph *head, *tail;
    Graph.adjacentVertex *ahead, *atail;
 
 
public:
    CGraph():head(NULL), tail(NULL), ahead(NULL), atail(NULL){}
 
    void addMainVertex(int mainVertex);
    void addAdjacentVertex(int adjacentVertex);
 
}
Реализация функций из заголовочного файла:
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
#pragma one;
#include "stdafx.h"
#include "structGraph.h"
 
void CGraph::addMainVertex (int mainVertex)
{
    Graph *newGraph = new Graph(mainVertex);
    newGraph -> mainVertex = mainVertex;
    newGraph -> numberVertex++;
    if(!head)
    {
        newGraph -> nextMainVertex = NULL; 
        tail = newGraph;
    }
    else
    {
        newGraph -> nextMainVertex = head;
        head -> prevMainVertex = newGraph;
    }
 
}
 
void CGraph::addAdjacentVertex (int adjacentVertex)
{
    Graph.adjacentVertex *newAdjacentVertex = new Graph.adjacentVertex(adjacentVertex);
    newAdjacentVertex -> Vertex = adjacentVertex;
    if(!ahead)
    {
        newAdjacentVertex -> nextAdjacentVertex = NULL; 
        atail = newAdjacentVertex;
    }
    else
    {
        newAdjacentVertex -> nextAdjacentVertex = ahead;
        ahead -> prevtAdjacentVertex = newAdjacentVertex;
    }
}
Main функция

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// componentGraph.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "structGraph.h"
 
 
void main()
{
    CGraph tx;
    tx.addMainVertex(5);
    tx.addAdjacentVertex(1);
    tx.addAdjacentVertex(2);
    tx.addAdjacentVertex(3);
    tx.addAdjacentVertex(4);
    //return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru