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

Классы, грфы, операции на них - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ автоматная программа сортировки слиянием http://www.cyberforum.ru/cpp-beginners/thread827413.html
есть программа, реализующая сортировку слиянием. нужно написать автоматную сортировку слиянием void merge(int *A, int l, int s, int r) { //слияние упорядоченных частей массива int pos1=l; int pos2=s+1; int pos3=0; int *B;
C++ Задача с классом Здравствуйте. Имеется следующий класс. class CClass { private: int *arr; const int size; http://www.cyberforum.ru/cpp-beginners/thread827412.html
Переставить местами строки C++
Как в масиве строк поменять, например, первую и вторую строку местами?
Найти ошибку в коде C++
Помогите пж. найти ошибку в коде,он почему то последний символ не считывает. #include <iostream> #include <fstream> using namespace std; int main(){ char a; int bkv=0,cfr=0,ost=0; ifstream file("c.txt"); file.get(a);
C++ Лаба по археому (Реализовать имитационную модель процессора со стековой адресацией с двумя командами) http://www.cyberforum.ru/cpp-beginners/thread827398.html
Реализовать имитационную модель процессора со стековой адресацией с двумя командами - занесением в стек и нахождением дополнения к числу в дополнительном коде.
C++ Интрузивный и не интрузивный список Здорова господа! Что такое обычный список это понятно есть узел в котором находится указатель на соседний элемент и переменная которая содержит значение узла. А от интрузивный список хз. Там я от посмотрел в узле содержится токо два указателя на элементы, а где же хранятся данные? От примерчик из википедии: struct list_link { list_link *prev, *next; }; struct element подробнее

Показать сообщение отдельно
MargaretK
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 6
03.04.2013, 23:00  [ТС]     Классы, грфы, операции на них
хэдэр 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
#ifndef GRAPH_H_
#define GRAPH_H_
 
 
#include <iostream>
#include "Node.h"
 
using namespace std;
 
class Graf
{
private:
    Node* nodeList[NODENR];//List of verticies
    int size;//number of nodes
public:
    Graf();
    Graf operator+= (Graf& gr);
//------------------------------------------void getsize
    void getsize();
//------------------------------------------inline void addNode
inline void addNode(int nr, char info)
    {
        if (nodeList[nr]== NULL)
            nodeList[nr]=new Node(info);
    }
//-------------------------------------------void addEdge
void addEdge(int org, int dst, int info);
//-------------------------------------------inline bool existnode
inline bool existnote(int nr)
    {
        return nodeList[nr]!=NULL;
    }
//--------------------------------------------deleteNODE
inline void clear(int nr)
{
  if(nodeList[nr]!=NULL)
    delete nodeList[nr];
}
 
//-------------------------------------------destructor
    ~Graf();
 
};
#endif
функции к хэдэру 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
54
55
56
57
#include <iostream>
#include "Node.h"
#include "Graf.h"
 
using namespace std;
 
//---------------------------------------------------------------constuctor
Graf::Graf() : size(0)
{
    for (int i=0; i<NODENR; ++i)
        nodeList[i]=NULL;
}
//---------------------------------------------------------------void addEdge
void Graf::addEdge(int org, int dst, int info)
{
    if (!existnote(org))
        return;
    if (!existnote(dst))
        return;
    nodeList[org]->clear(dst);
    int *ed = new int(info);
    nodeList[org]->addEdge(dst,ed);
    nodeList[dst]->addEdge(org,ed);
}
 
//----------------------------------------------------------------void getsize
void Graf:: getsize()
{
   for (int i=0; i<NODENR; i++)
    if (nodeList[i]!=NULL)
    size++;
}
 
//-----------------------------------------------------------------destructor
Graf::~Graf()
{
    for(int i=0; i<NODENR; ++i)
    {
        if(nodeList[i] == NULL) continue;
        for(int j=i; j<NODENR; ++j)
        {
            if(nodeList[j] == NULL) continue;
            nodeList[i]->clear(j);
        }
        delete nodeList[i];
    }
}
//-------------------------------------------------------------------------------overloaded operator +=
    Graf Graf::operator+= (const Graf& other)
    {
        for (int i=0; i<NODENR; i++)
            if (this->nodeList[i]==other->nodeList[i])
                return *this;
            else if (this->nodeList[i]==NULL && other->nodeList[i]!==NULL)
                this->nodeList[i]=addNode();
 
    }
в конце тут начала, но как-то онон не очень хорошо пошло

хэдэр 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
#ifndef NODE_H_
#define NODE_H_
 
 
#include <iostream>
#define NODENR 200
 
using namespace std;
 
class Node
{
private:
    char info;
    int listsize;
    int* edges[NODENR];
 
public:
    int i;
//----------------------------------------------------constructor
    Node(char i);
 
//----------------------------------------------------inline void clear
    inline void clear(int nr)
    {
        if (edges[nr]!=NULL)
            delete edges[nr];
    }
 
//-----------------------------------------------------inline void addEdge
    inline void addEdge(int dst, char* info)
    {
        edges[dst] = info;
    }
//------------------------------------------------------destructor
    ~Node();
 
};
#endif
Добавлено через 8 минут
блин.. про сложение забыла
вот есть один граф с вершинами a,b,c,d и есть второй с вершинами a,c,d,e,f
все эти вершины могут быть раскиданы где не попадя в таблице, потому что номер ячейки сами вписываем и вот когда складываем эти графы должно остаться a,b,c,d,e,f т.е. те вершины что повторяются становятся одной а те что появляются один раз добавляются ко все куче
 
Текущее время: 04:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru