Parcourir la source

Загрузить файлы 'graph'

miket il y a 1 an
Parent
commit
16d66dfa72
5 fichiers modifiés avec 159 ajouts et 0 suppressions
  1. 15 0
      graph/FS.cpp
  2. BIN
      graph/Node.cpp
  3. 59 0
      graph/graph.h
  4. 23 0
      graph/main.cpp
  5. 62 0
      graph/testgraph.txt

+ 15 - 0
graph/FS.cpp

@@ -0,0 +1,15 @@
+//#include "FS.h"
+/*bool DFS::connected(Node* begin, Node* end) { 
+	visited.clear(); 
+	return connected(begin, end, 0); 
+} 
+
+
+bool DFS::connected(Node* begin, Node* end, int depth) { 
+	if (begin == end) return true;   
+	visited.insert(begin);   
+	for (node_iterator it = begin->nb_begin(); it != begin->nb_end(); it++) {
+		if (visited.find(*it) == visited.end()) { 
+			if (connected(*it, end, depth + 1)) 
+				return true; } }   
+	return false; }*/

BIN
graph/Node.cpp


+ 59 - 0
graph/graph.h

@@ -0,0 +1,59 @@
+
+#include <string>
+#include <set>
+using namespace std;
+
+
+
+class Node {
+
+	typedef set<Node*>::const_iterator node_iterator;
+
+private:
+	string name;
+	set <Node*> neighboors;
+	void add_neigboor(Node* neighboor);
+	void remove_neighboor(Node* neighboor);
+
+public:
+	Node(const string& aname);
+	const string get_name() const;
+
+
+	node_iterator nb_begin() const {
+		return neighboors.begin();
+	};
+	node_iterator nb_end() const {
+		return neighboors.end();
+	};
+
+
+
+	friend class Graph;
+
+
+
+};
+
+class Graph
+{
+	typedef set<Node*>::const_iterator node_iterator;
+private:
+	set<Node*> nodes;
+public:
+	void add_node(Node* node);
+	void remove_node(Node* node);
+	void add_edge(Node* begin, Node* end);
+	void remove_edge(Node* begin, Node* end);
+
+
+
+	node_iterator begin() {
+		return nodes.begin();
+	};
+
+	node_iterator end() {
+		return nodes.end();
+	};
+};
+

+ 23 - 0
graph/main.cpp

@@ -0,0 +1,23 @@
+// graphs.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
+//
+
+#include <iostream>
+#include "graph.h"
+
+using namespace std;
+
+int main()
+{
+    cout << "Hello World!\n";
+}
+
+// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
+// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
+
+// Советы по началу работы 
+//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
+//   2. В окне Team Explorer можно подключиться к системе управления версиями.
+//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
+//   4. В окне "Список ошибок" можно просматривать ошибки.
+//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
+//   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.

+ 62 - 0
graph/testgraph.txt

@@ -0,0 +1,62 @@
+Source	Target
+0	1
+0	4
+0	11
+0	38
+1	20
+1	28
+2	6
+2	14
+2	20
+2	33
+2	34
+2	38
+3	31
+3	46
+4	10
+4	21
+4	26
+4	32
+5	28
+6	9
+6	18
+6	44
+7	15
+7	25
+7	42
+7	43
+8	12
+8	13
+8	46
+9	10
+9	30
+9	37
+9	46
+11	21
+11	23
+11	48
+12	16
+12	27
+16	32
+16	48
+18	24
+18	26
+19	33
+19	40
+19	43
+20	45
+21	34
+22	35
+24	46
+26	48
+29	39
+30	42
+31	48
+33	34
+33	47
+33	48
+35	43
+36	42
+36	47
+37	46
+44	46