Jelajahi Sumber

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

miket 1 tahun lalu
induk
melakukan
52e203cfb9
5 mengubah file dengan 176 tambahan dan 0 penghapusan
  1. TEMPAT SAMPAH
      Node.cpp
  2. 32 0
      graph.cpp
  3. 59 0
      graph.h
  4. 23 0
      main.cpp
  5. 62 0
      testgraph.txt

TEMPAT SAMPAH
Node.cpp


+ 32 - 0
graph.cpp

@@ -0,0 +1,32 @@
+#include "graph.h"
+
+
+Node::Node(const string& aname)
+{
+	name = aname;
+}
+
+const string Node::get_name() const
+{
+	return name;
+}
+
+
+void Graph::remove_node(Node* node)
+{
+	nodes.erase(node);
+	for (set<Node*>::iterator it = nodes.begin(); it != nodes.end(); it++) {
+		(*it)->remove_neighboor(node);
+	}
+
+}
+
+void Graph::add_edge(Node* begin, Node* end)
+{
+	if (nodes.find(begin) == nodes.end())
+		return;
+	if (nodes.find(end) == nodes.end())
+		return;
+	begin->add_neigboor(end);
+	end->add_neigboor(begin);
+}

+ 59 - 0
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
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
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