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

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

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

Ориентированный граф. ООП. Ошибка - C++

12.03.2014, 17:12. Просмотров 422. Ответов 0
Метки нет (Все метки)

Доброго времени суток. Подскажите пожалуйста, в чем ошибка.

файл list.h
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#pragma once
 
#include"stdio.h"
 
class ListGraph;
 
template <class T>
class list {
    struct listItem {
        T item;
        listItem *next;
 
        listItem(const T &item, listItem *next = NULL){
            listItem::item = item;
            listItem::next = next;
        }
    };
 
    listItem *first, *last;
    int count;
 
public:
    list(){
        first = last = NULL;
        count = 0;
    }
 
    ~list();
 
    void Add(const T &);
    bool Has(const T &) const;
    bool Remove(T value);
};
 
template <class T>
list<T>::~list(){
    listItem *current = first,
        *prev = NULL;
    while (current){
        prev = current;
        current = current->next;
        delete prev;
    }
}
 
template <class T>
void list<T>::Add(const T & item){
    listItem *newItem = new listItem(item);
    if(last)
        last->next = newItem;
    else
        first = newItem;
 
    last = newItem;
    count++;
 
}
 
template <class T>
bool list<T>::Has(const T & item) const{
    for(listItem *current = first; current; current = current->next){
        if(current->item == item)
            return true;
    }
 
    return false;
}
 
template <class T>
bool list<T>::Remove(T value){
    listItem *prev = 0,
        *current = first;
    while (current){
        if (current->item == value){
            if(prev){
                prev->next = current->next;
            }
            if (current == last){
                last = prev;
            }
            delete current;
            count--;
            return true;
        }
    }
    return false;
}
file ListGraph.h
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
#pragma once
 
#include "graph.h"
#include "list.h"
 
class ListGraph;
 
class ListGraph{
private:
    list<int> *graph;
    int vertexNumber;
 
public:
    ListGraph(int n) : vertexNumber(n), graph(new list<int>[n]){}
 
    ~ListGraph(){
        delete graph;
    }
 
    int countVertex() const{
        return vertexNumber;
    }
 
    void AddArc(char from, char too);
    bool HasArc(char from, char too) const;
    bool DelArc(char from, char too);
};
file ListGraph.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma once
#include "stdafx.h"
#include "ListGraph.h"
 
 
void ListGraph::AddArc(char from, char too){
    graph[from].Add(too);
}
 
bool ListGraph::HasArc(char from, char too) const{
    return graph[from].Has(too);
}
fie Orgraph.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Orgraph.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "ListGraph.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    ListGraph  lGraph(5);
    //lGraph.AddArc(5,2);
    lGraph.AddArc(1,2);
    lGraph.AddArc(2,2);
    lGraph.AddArc(3,2);
    lGraph.AddArc(4,2);
    if(lGraph.HasArc(1,2)){
        cout<<"werwer";
    }
    return 0;
}
Программа выполняется, но потом вылетает ошибка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 17:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ориентированный граф. ООП. Ошибка (C++):

Задача на ориентированный граф - C++
Ребята, спасайте! обычно я прихожу сюда с недоделанным кодом/кодом в котором что-то неправильно работает, но тут времени совсем не...

Ориентированный граф и матрица инцидентности - C++
Вот у меня есть такое прекрасное задание: Базовый класс: Элемент ориентированного графа. Производные классы: дуга и вершина...

Из матрицы смежности сделать ориентированный граф - C++
Какаю библиотеку использовать что би нарисовать граф?Возможно есть готов код ,буду очень благодарный за любую помощь.У меня идей ноль)

Ориентированный граф. Получить из списка рёбер матрицу смежности - C++
Задача: Простой ориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности. Входной файл содержит...

Проверить, является ли ориентированный граф, с заданным количеством узлов и рёбер, деревом - C++
Дан ориентированный граф из n узлов и m рёбер. Проверить, является ли он деревом. Помогите пожалуйста решить задачу, на языке С++. ...

Дан ориентированный граф. Найти все сильно связные компоненты графа - C++
Есть вот такой код, очень прошу исправить под задание в теме поста Спасибо заранее! #include &lt;iostream&gt; #include &lt;vector&gt; ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 17:12
Привет! Вот еще темы с ответами:

Дан ориентированный граф, нужно на выходе получить матрицу кратчайших путей - C++
Добрый день,задача состоит в следующем: Дан ориентированный граф(матрица смежности с бесконечностями),задана правильная нумерация.Нужно на...

Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл - C++
помогите очень срочно надо. считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл ...

ООП c++ ошибка доступа - C++
Всем привет,проблема с файлами,после того как написал код и раскинул его по файлам(в rectangle.cpp и rectangle hpp) пропал доступ к...

В чем моя ошибка?(ООП, классы) - C++
Что изменить в файле functionss.h? Заранее спасибо!!! Задание: Определить класс «матрица». В класс включить два конструктора: 1)...


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

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

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