diff --git a/PiginAP/lab3-postfix/DOC/Lab-1(Postfix).pdf b/PiginAP/lab3-postfix/DOC/Lab-1(Postfix).pdf new file mode 100644 index 000000000..517d16cdf Binary files /dev/null and b/PiginAP/lab3-postfix/DOC/Lab-1(Postfix).pdf differ diff --git a/PiginAP/lab3-postfix/include/List.h b/PiginAP/lab3-postfix/include/List.h new file mode 100644 index 000000000..a901187d1 --- /dev/null +++ b/PiginAP/lab3-postfix/include/List.h @@ -0,0 +1,186 @@ +#ifndef LIST_H +#define LIST_H + +#include "Obj.h" +#include + +template +class List +{ +private: + Obj* root; +public: + List(); //+ + List(const List& list); //+ + ~List(); //+ + void push_back(const L &l); //+ + void push_up(const L &l); //+ + void push_under(L key, const L &l); //+ + L pop_up(); //+ + L pop_back(); //+ + size_t get_size()const; //+ + List& operator=(const List& list); //+ +}; +//==========================================================||========================================================== +template +List< L >::List() : root(NULL) {} +//========================================================== +template +List::~List() +{ + while (root) + { + pop_up(); + } +} +//========================================================== +template +List::List(const List& list):root(NULL) +{ + if (list.root) + { + root = new Obj(list.root->val); + Obj* buf = root; + Obj* buffer = list.root->next; + while (buffer) + { + buf->next = new Obj(buffer->val); + buf = buf->pNext; + buffer = buffer->pNext; + } + } +} +//========================================================== +template +void List::push_back(const L & l) +{ + Obj* temp = NULL; + if (temp = new Obj(l)) + { + if (root == NULL) { + root = temp; + } + else { + Obj* buf = root; + while (buf->pNext) + { + buf->pNext; + } + buf->pNext = temp;} + } + else { + throw "List is FULL";} +} +//========================================================== +template +void List::push_up(const L & l) +{ + Obj* obj = NULL; + if (obj = new Obj(l)) + { + Obj* buf = root; + root = obj; + obj->pNext = buf; + } + else { + throw "ERROR List is FULL"; + } + +} +//========================================================== +template +void List::push_under(L key, const L & l) +{ + Obj* Obj = NULL; + if (Obj = new Obj(l)) + { + if (!root->pNext) + { + root->pNext = Obj; + } + else { + Obj* buf = root; + while (buf->val != key) + { + buf = buf->pNext; + } + Obj* temp = buf->pNext; + buf->pNext = Obj; + buf->pNext->pNext = temp;} + + } + else { + throw "List is FULL";} +} +//========================================================== +template +L List::pop_up() +{ + if (!root) { throw "List is Empty"; } + Obj* buf = root; + L dat = buf->val; + root = buf->pNext; + delete buf; + return dat; +} +//========================================================== +template +L List::pop_back() +{ + + if (!root) { throw "List is Empty"; } + else if (!root->next) + { + L val = root->val; + delete root; + root = NULL; + return val; + } + else + { + Obj* buf = root; + while (buf->next->next) + { + buf = buf->next; + } + L val = buf->next->val; + Obj* temp = buf->next; + buf->next = NULL; + delete temp; + return val; + } + return L(); +} +//========================================================== +template +inline size_t List::get_size() const +{ + size_t size = 0; + Obj* root_buf = root; + while (root_buf) + { + root_buf = root_buf->pNext; + size++; + } + return size; +} +//========================================================== +template +List& List::operator=(const List& list) +{ + if (list.root) + { + root = new Obj(list.root->val); + Obj* buf = root; + Obj* buffer = list.root->next; + while (buffer) + { + buf->next = new Obj(buffer->val); + buf = buf->next; + buffer = buffer->next; + } + } + return *this; +} +//========================================================== +#endif \ No newline at end of file diff --git a/PiginAP/lab3-postfix/include/Obj.h b/PiginAP/lab3-postfix/include/Obj.h new file mode 100644 index 000000000..b4506c261 --- /dev/null +++ b/PiginAP/lab3-postfix/include/Obj.h @@ -0,0 +1,15 @@ +#ifndef OBJ_H +#define OBJ_H + +#include +template + +class Obj +{ +public: + Obj() :pNext(NULL) {}; + Obj(const L& value) :pNext(NULL), val(value) {}; + Obj* pNext; + L val; +}; +#endif \ No newline at end of file diff --git a/PiginAP/lab3-postfix/include/Postfix.h b/PiginAP/lab3-postfix/include/Postfix.h new file mode 100644 index 000000000..45349746a --- /dev/null +++ b/PiginAP/lab3-postfix/include/Postfix.h @@ -0,0 +1,19 @@ +#ifndef POSTFIX_H +#define POSTFIX_H + +#include "Stack.h" +#include + +using namespace std; + +class Postfix +{ +private: + static bool operand(const char str); //+ + static int priority(char x); //+ + static double calc_op(double one, double two, char op); +public: + static string create_form(string inp_text); //+ + static double calc_form(string form); //+ +}; +#endif \ No newline at end of file diff --git a/PiginAP/lab3-postfix/include/Stack.h b/PiginAP/lab3-postfix/include/Stack.h new file mode 100644 index 000000000..05ec6fdb6 --- /dev/null +++ b/PiginAP/lab3-postfix/include/Stack.h @@ -0,0 +1,82 @@ +#ifndef STACK_H +#define STACK_H + +#include "List.h" + +template +class Stack +{ +private: + List list; +public: + Stack(); + Stack(const Stack& stack); + ~Stack(); + void push(const T& t); + T pop(); + bool IsEmpty()const; + bool IsFull()const; + +}; +//==========================================================||========================================================== +template +Stack::Stack() {} +//========================================================== +template +Stack::~Stack() +{ + list.~List(); +} +//========================================================== +template +Stack::Stack(const Stack& stack){ + list = List(stack.list); +} +//========================================================== +template +void Stack::push(const T & t) +{ + list.push_up(t); +} +//========================================================== +template +T Stack::pop() +{ + T dat = T(); + try + { + dat = list.pop_up(); + } + catch (const char* ex) + { + return T(); + } + return dat; +} +//========================================================== +template +bool Stack::IsEmpty()const +{ + if (list.get_size() == 0) + { + return true; + } + return false; +} +//========================================================== +template +bool Stack::IsFull()const +{ + try + { + list.push_up(T()); + } + catch (const char* ex) + { + return true; + } + list.pop(); + return false; +} +//========================================================== +#endif \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sample/sample_list.cpp b/PiginAP/lab3-postfix/sample/sample_list.cpp new file mode 100644 index 000000000..7a4d9c522 --- /dev/null +++ b/PiginAP/lab3-postfix/sample/sample_list.cpp @@ -0,0 +1,27 @@ +#include +#include +#include "Postfix.h" + +using namespace std; + + +int main() +{ + Stack Stack_one; + Stack Stack_two; + string inp_text; + + cout << "Expression: "; + cin >> inp_text; + + string form = Postfix::create_form(inp_text); + cout << "Post. form: " << form << endl; + double calc_form = Postfix::calc_form(form); + if(calc_form == 0) + { + return 0; + } + cout << calc_form << endl; + + return 0; +} \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/gtest/gtest.vcxproj b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/gtest/gtest.vcxproj new file mode 100644 index 000000000..24c72ed8c --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/gtest/gtest.vcxproj @@ -0,0 +1,74 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {11DC6251-D4D5-45B0-9B1C-289D1FA01611} + Win32Proj + gtest + + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + + + Windows + true + true + true + + + + + + \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/gtest/gtest.vcxproj.filters b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/gtest/gtest.vcxproj.filters new file mode 100644 index 000000000..8a5823884 --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/gtest/gtest.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/lab3_postfix.sln b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/lab3_postfix.sln new file mode 100644 index 000000000..be56202de --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/lab3_postfix.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest", "gtest\gtest.vcxproj", "{11DC6251-D4D5-45B0-9B1C-289D1FA01611}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "postfix_lib", "postfix_lib\postfix_lib.vcxproj", "{A1091922-61A0-41D9-8514-481B7B0817C6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample_list", "sample_list\sample_list.vcxproj", "{0F4931D3-357F-46D4-916C-3C9C76720E57}" + ProjectSection(ProjectDependencies) = postProject + {A1091922-61A0-41D9-8514-481B7B0817C6} = {A1091922-61A0-41D9-8514-481B7B0817C6} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {11DC6251-D4D5-45B0-9B1C-289D1FA01611}.Debug|Win32.ActiveCfg = Debug|Win32 + {11DC6251-D4D5-45B0-9B1C-289D1FA01611}.Debug|Win32.Build.0 = Debug|Win32 + {11DC6251-D4D5-45B0-9B1C-289D1FA01611}.Release|Win32.ActiveCfg = Release|Win32 + {11DC6251-D4D5-45B0-9B1C-289D1FA01611}.Release|Win32.Build.0 = Release|Win32 + {A1091922-61A0-41D9-8514-481B7B0817C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {A1091922-61A0-41D9-8514-481B7B0817C6}.Debug|Win32.Build.0 = Debug|Win32 + {A1091922-61A0-41D9-8514-481B7B0817C6}.Release|Win32.ActiveCfg = Release|Win32 + {A1091922-61A0-41D9-8514-481B7B0817C6}.Release|Win32.Build.0 = Release|Win32 + {0F4931D3-357F-46D4-916C-3C9C76720E57}.Debug|Win32.ActiveCfg = Debug|Win32 + {0F4931D3-357F-46D4-916C-3C9C76720E57}.Debug|Win32.Build.0 = Debug|Win32 + {0F4931D3-357F-46D4-916C-3C9C76720E57}.Release|Win32.ActiveCfg = Release|Win32 + {0F4931D3-357F-46D4-916C-3C9C76720E57}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/postfix_lib/postfix_lib.vcxproj b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/postfix_lib/postfix_lib.vcxproj new file mode 100644 index 000000000..06b5cb60e --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/postfix_lib/postfix_lib.vcxproj @@ -0,0 +1,84 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {A1091922-61A0-41D9-8514-481B7B0817C6} + Win32Proj + postfix_lib + + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + + + Windows + true + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/postfix_lib/postfix_lib.vcxproj.filters b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/postfix_lib/postfix_lib.vcxproj.filters new file mode 100644 index 000000000..053703c5b --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/postfix_lib/postfix_lib.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + + + Файлы исходного кода + + + \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/sample_list/sample_list.vcxproj b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/sample_list/sample_list.vcxproj new file mode 100644 index 000000000..2c3d99e57 --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/sample_list/sample_list.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + {0F4931D3-357F-46D4-916C-3C9C76720E57} + Win32Proj + sample_list + + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + true + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Console + true + postfix_lib.lib;%(AdditionalDependencies) + ..\Debug + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Console + true + true + true + postfix_lib.lib;%(AdditionalDependencies) + ..\Release + + + + + + \ No newline at end of file diff --git a/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/sample_list/sample_list.vcxproj.filters b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/sample_list/sample_list.vcxproj.filters new file mode 100644 index 000000000..b12b0604d --- /dev/null +++ b/PiginAP/lab3-postfix/sln/vc10/lab3_postfix/sample_list/sample_list.vcxproj.filters @@ -0,0 +1,14 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Файлы исходного кода + + + \ No newline at end of file diff --git a/PiginAP/lab3-postfix/src/Postfix.cpp b/PiginAP/lab3-postfix/src/Postfix.cpp new file mode 100644 index 000000000..e49236374 --- /dev/null +++ b/PiginAP/lab3-postfix/src/Postfix.cpp @@ -0,0 +1,141 @@ +#include "Postfix.h" +#include +#include + +using namespace std; + +bool Postfix::operand(const char str) +{ + if((str>=65) && (str<=90)) + { + return true; + } + else if(((str>=40)&&(str<=43))||(str == 45)||(str == 47) || (str == 61)) + { + return false; + } + throw "Operation is not correct" + str; +} +//==========================================================||========================================================== +int Postfix::priority(char x) +{ + if ((x =='*')||(x =='/')) + { + return 2; + } + if ((x =='+')||(x =='-')) + { + return 1; + } + if ((x =='(')||(x ==')')) + { + return 0; + } + return -1; +} +//==========================================================||========================================================== +string Postfix::create_form(string inp_text) +{ + Stack Stack_one; + Stack Stack_two; + for (int i = 0; i < inp_text.length(); i++) + { + if (inp_text[i] == '(') Stack_two.push(inp_text[i]); + else if ((inp_text[i] == '+') || (inp_text[i] == '-') || (inp_text[i] == '/') || (inp_text[i] == '*')) + { + char stack_two_up = Stack_two.pop(); + while ((!Stack_two.IsEmpty()) && (Postfix::priority(stack_two_up) > Postfix::priority(inp_text[i]))) + { + Stack_one.push(stack_two_up); + stack_two_up = Stack_two.pop(); + } + if(stack_two_up!='\0') + { + Stack_two.push(stack_two_up); + } + Stack_two.push(inp_text[i]); + } + else if (inp_text[i] == ')') + { + char stack_two_up = Stack_two.pop(); + while ((Stack_two.IsEmpty()) && (stack_two_up != '(')); + { + Stack_one.push(stack_two_up); + } + Stack_two.pop(); + } + else { Stack_one.push(inp_text[i]); } + } + + while (!Stack_two.IsEmpty()) { Stack_one.push(Stack_two.pop()); } + string s = ""; + while (!Stack_one.IsEmpty()) { s = Stack_one.pop() + s; } + + return s; + +} +//==========================================================||========================================================== +double Postfix::calc_form(string form) +{ + map nums; + for (size_t i = form.size()-1; i < form.size(); i--) + { + if (Postfix::operand(form[i]) && nums.count(form[i]) == 0 ) + { + double var; + cout << "input var " << form[i] << " : "; + cin >> var; + nums.insert(pair(form[i], var)); + } + + } + + Stack end_list; + for (int i = 0; i < form.size(); i++) + { + char element = form[i]; + if (Postfix::operand(element)) + { + end_list.push(nums[element]); + } + else { + double two = end_list.pop(); + double one = end_list.pop(); + try + { + const double st = calc_op(one, two, element); + end_list.push(st); + } + catch( const char* ex) + { + cout< +#include + +#define maxSize 1000 +typedef int dataType; + +class Data { +public: + float priorities; +}; +//============================================================||============================================================ +class DHeap { +protected: + Data** keys; // () + int d; // - + int lastIdx; // +public: + /* */ + DHeap(int d); + DHeap(const DHeap &heap); + ~DHeap(); + + int isFull()const; + int isEmpty()const; + + void add(Data *&key); // + void addSet(Data **key, int num); // + + Data* erase(); // + Data* erase(int i); // ... i- + + void transposition(int i, int j); // + void surfacing(int i); // + void immersion(int i); // + + void hilling(); // + +private: + int minChild(int i); // +}; + diff --git a/PiginAP/lab4-Dijkstra/include/dijkstra.h b/PiginAP/lab4-Dijkstra/include/dijkstra.h new file mode 100644 index 000000000..78774d206 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/include/dijkstra.h @@ -0,0 +1,16 @@ +#pragma once +#include "graph.h" +#include "d-heap.h" +#include "priority-queue.h" +#include + +class DataFloat : public Data { +public: + DataFloat(int v, float dist); + int v; +}; +//============================================================||============================================================ +class Dijkstra { +public: + static void dijkstra(Graph *&graph, int s, float *&distance, int *&up); +}; \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/include/graph.h b/PiginAP/lab4-Dijkstra/include/graph.h new file mode 100644 index 000000000..418db7dd7 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/include/graph.h @@ -0,0 +1,55 @@ +#ifndef GRAPH_H +#define GRAPH_H + +#include +#include +#include + +#define maxVerticesSize 1000 + + +class WeightedEdge { +public: + int nac_ver; // + int kon_ver; // + float weight; // N K + + WeightedEdge(int _nac_ver, int _kon_ver, float _weight); +}; +//============================================================||============================================================ +class Graph { +private: + int vershini; // + int rebra; // + int tek_rebro; // + WeightedEdge** edges; // + int* vertices; // +public: + // + Graph(int vershini); + Graph(int vershini, int rebra); + ~Graph(); + + void generateGraph(float minRange, float maxRange); // + void addEdge(int nac_ver, int kon_ver, float weight); // + void removeEdge(int nac_ver, int kon_ver); // + + int getVerticesNum(); // + int getEdgeSize(); // + int getRealSize(); // + WeightedEdge** getEdgeSet(); // + WeightedEdge* getEdge(int j); // + float getWeight(int nac_ver, int kon_ver); // + + void printList(); + + + +private: + void generateVertices(int &nac_ver, int &kon_ver); // + float generateWeight(float minRange, float maxRange); // + void cleaner(); // + int searchEdge(int _nac_ver, int _kon_ver); // + +}; +#endif; \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/include/priority-queue.h b/PiginAP/lab4-Dijkstra/include/priority-queue.h new file mode 100644 index 000000000..edc49cb48 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/include/priority-queue.h @@ -0,0 +1,31 @@ +#include "d-heap.h" + +class PriorityQueue { +public: + PriorityQueue() {}; + + virtual void push(Data *&key) = 0; + virtual Data* pop() = 0; + + + virtual int isFull()const = 0; + virtual int isEmpty()const = 0; +}; + + +/* D- */ +class DHeapBasedPriorityQueue : public PriorityQueue { + +public: + DHeapBasedPriorityQueue(int d = 4); + DHeapBasedPriorityQueue(const DHeapBasedPriorityQueue &queue); + DHeapBasedPriorityQueue(Data **keys, int num, int d = 4); + ~DHeapBasedPriorityQueue(); + + virtual void push(Data *&key); // + virtual Data* pop(); // + DHeap * heap; + + virtual int isFull()const; + virtual int isEmpty()const; +}; \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/samples/sample_dheap.cpp b/PiginAP/lab4-Dijkstra/samples/sample_dheap.cpp new file mode 100644 index 000000000..caec6295b --- /dev/null +++ b/PiginAP/lab4-Dijkstra/samples/sample_dheap.cpp @@ -0,0 +1,139 @@ +#include "dijkstra.h" +#include +#include + +using namespace std; + +int main() { + Graph* graph; + int n; // + int m; // + int s; // Start vertices + + + int typeGenerate; + cout << "Write number vertices" << endl; + cin >> n; + cout << "Write number edges" << endl; + cin >> m; + + + if ((m < 0) || (m > n*(n - 1) / 2) || (m < n - 1)) + { + cout<<"Graph isn't svyazny"<> typeGenerate; + switch (typeGenerate) + { + // + case 1: { + try + { + int minRange; // + int maxRange; // + cout << "Write min Range" << endl; + cin >> minRange; + cout << "Write max Range" << endl; + cin >> maxRange; + graph->generateGraph(minRange, maxRange); + } + catch (const char ex) + { + cout<> nac_ver; + cout << "Write finish vertices" << endl; + cin >> kon_ver; + cout << "Write weight" << endl; + cin >> weight; + graph->addEdge(nac_ver, kon_ver, weight); + } + } + catch (const char ex) + { + cout<> s; + + graph->printList(); + cout << endl; + + float *dist; // S i- + int *up; // , + try { + Dijkstra::dijkstra(graph, s, dist, up); + } + catch (const char ex) + { + cout<getEdge(j); + cout << edge->nac_ver<< ' ' << edge->kon_ver << ' ' << edge->weight << endl; + } + + cout << "// Distances //" << endl; // S i- + for (int i = 0; i < n; i++) + if (dist[i] != FLT_MAX) + cout << dist[i] << ' '; + else + cout << "inf" << ' '; + + cout << endl << "// Ways //" << endl; // + for (int i = 0; i < n; i++) { + cout << endl; + cout << i; // - i- + cout << ' ' << dist[i]; // - S + cout << ' ' << up[i]; // - i- + } + + + delete graph; // + delete[]dist; + delete[]up; + + + + cout << endl; + return 0; +} \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.exe b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.exe new file mode 100644 index 000000000..8ab7fa455 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.exe differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.ilk b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.ilk new file mode 100644 index 000000000..b981745cb Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.ilk differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.pdb b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.pdb new file mode 100644 index 000000000..5083705fb Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Gen_graph.pdb differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Graph_lib.lib b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Graph_lib.lib new file mode 100644 index 000000000..f8cf814a9 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/Graph_lib.lib differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.exe b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.exe new file mode 100644 index 000000000..088eb227e Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.exe differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.ilk b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.ilk new file mode 100644 index 000000000..89c31708e Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.ilk differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.pdb b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.pdb new file mode 100644 index 000000000..337a3909d Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Debug/lab4-Dijkstra.pdb differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/CL.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/CL.read.1.tlog new file mode 100644 index 000000000..190986c30 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/CL.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/CL.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/CL.write.1.tlog new file mode 100644 index 000000000..edcef8815 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/CL.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.embed.manifest b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.embed.manifest new file mode 100644 index 000000000..e693382a3 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.embed.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.embed.manifest.res b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.embed.manifest.res new file mode 100644 index 000000000..9c8df0e3c Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.embed.manifest.res differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.intermediate.manifest b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.intermediate.manifest new file mode 100644 index 000000000..1c06b6190 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.exe.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.lastbuildstate b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.lastbuildstate new file mode 100644 index 000000000..d25ae31c1 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\| diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.log b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.log new file mode 100644 index 000000000..e58e7b501 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.log @@ -0,0 +1,26 @@ +Построение начато 31.05.2018 1:50:33. + 1>Проект "C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Gen_graph\Gen_graph.vcxproj" в узле 3 (целевые объекты build). + 1>InitializeBuildStatus: + Обращение к "Debug\Gen_graph.unsuccessfulbuild". + ClCompile: + Для всех выходных данных обновления не требуется. + ManifestResourceCompile: + Для всех выходных данных обновления не требуется. + Link: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.exe" /INCREMENTAL /NOLOGO /LIBPATH:..\Debug Graph_lib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\Gen_graph.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.lib" /MACHINE:X86 Debug\Gen_graph.exe.embed.manifest.res + Debug\generate_g.obj + Manifest: + c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"Debug\Gen_graph.exe.embed.manifest" /manifest Debug\Gen_graph.exe.intermediate.manifest + c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /nologo /fo"Debug\Gen_graph.exe.embed.manifest.res" Debug\Gen_graph_manifest.rc + LinkEmbedManifest: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.exe" /INCREMENTAL /NOLOGO /LIBPATH:..\Debug Graph_lib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\Gen_graph.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.lib" /MACHINE:X86 Debug\Gen_graph.exe.embed.manifest.res + Debug\generate_g.obj + Gen_graph.vcxproj -> C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Gen_graph.exe + FinalizeBuildStatus: + Файл "Debug\Gen_graph.unsuccessfulbuild" удаляется. + Обращение к "Debug\Gen_graph.lastbuildstate". + 1>Построение проекта "C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Gen_graph\Gen_graph.vcxproj" завершено (целевые объекты build). + +Построение успешно завершено. + +Затраченное время: 00:00:02.61 diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.vcxprojResolveAssemblyReference.cache b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.vcxprojResolveAssemblyReference.cache new file mode 100644 index 000000000..3f0168105 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph.vcxprojResolveAssemblyReference.cache differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph_manifest.rc b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph_manifest.rc new file mode 100644 index 000000000..fcec305b1 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/Gen_graph_manifest.rc differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/cl.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/cl.command.1.tlog new file mode 100644 index 000000000..b181c7ebf Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/cl.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/generate_g.obj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/generate_g.obj new file mode 100644 index 000000000..5206d1885 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/generate_g.obj differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.16856.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.command.1.tlog new file mode 100644 index 000000000..b29aa4ea5 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.read.1.tlog new file mode 100644 index 000000000..e875b2c44 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.write.1.tlog new file mode 100644 index 000000000..5d3caed1c Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/link.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.command.1.tlog new file mode 100644 index 000000000..ee52a825a Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.read.1.tlog new file mode 100644 index 000000000..04b95c755 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.write.1.tlog new file mode 100644 index 000000000..04b95c755 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/mt.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.command.1.tlog new file mode 100644 index 000000000..e23fd6194 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.read.1.tlog new file mode 100644 index 000000000..a30582c6d Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.write.1.tlog new file mode 100644 index 000000000..e5d08b72c Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/rc.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/vc100.idb b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/vc100.idb new file mode 100644 index 000000000..be423b459 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/vc100.idb differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/vc100.pdb b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/vc100.pdb new file mode 100644 index 000000000..6a8ca2fc6 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Debug/vc100.pdb differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj new file mode 100644 index 000000000..74696430d --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj @@ -0,0 +1,84 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {DBAC126A-0EFE-49AB-82FA-32FAEBC3B853} + Win32Proj + Gen_graph + + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + true + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Console + true + Graph_lib.lib;%(AdditionalDependencies) + ..\Debug + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Console + true + true + true + ..\Release + + + + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj.filters b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj.filters new file mode 100644 index 000000000..693b64b6a --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj.filters @@ -0,0 +1,9 @@ + + + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj.user b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj.user new file mode 100644 index 000000000..695b5c78b --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Gen_graph/Gen_graph.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/CL.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/CL.read.1.tlog new file mode 100644 index 000000000..9d50c70df Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/CL.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/CL.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/CL.write.1.tlog new file mode 100644 index 000000000..d02ed9ab5 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/CL.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.lastbuildstate b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.lastbuildstate new file mode 100644 index 000000000..d25ae31c1 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\| diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.log b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.log new file mode 100644 index 000000000..102051e9a --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.log @@ -0,0 +1,25 @@ +Построение начато 04.06.2018 12:17:23. + 1>Проект "C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Graph_lib\Graph_lib.vcxproj" в узле 3 (целевые объекты build). + 1>InitializeBuildStatus: + Обращение к "Debug\Graph_lib.unsuccessfulbuild". + ClCompile: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I..\..\..\..\include /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _LIB /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt "..\..\..\..\src\dheap-based-priority-queue.cpp" ..\..\..\..\src\dijkstra.cpp + dijkstra.cpp + Создание кода... + Компиляция... + dheap-based-priority-queue.cpp + Создание кода... + Lib: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\Lib.exe /OUT:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Graph_lib.lib" /NOLOGO "Debug\d-heap.obj" + "Debug\dheap-based-priority-queue.obj" + Debug\dijkstra.obj + Debug\graph.obj + Graph_lib.vcxproj -> C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\Graph_lib.lib + FinalizeBuildStatus: + Файл "Debug\Graph_lib.unsuccessfulbuild" удаляется. + Обращение к "Debug\Graph_lib.lastbuildstate". + 1>Построение проекта "C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Graph_lib\Graph_lib.vcxproj" завершено (целевые объекты build). + +Построение успешно завершено. + +Затраченное время: 00:00:03.19 diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.vcxprojResolveAssemblyReference.cache b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.vcxprojResolveAssemblyReference.cache new file mode 100644 index 000000000..3f0168105 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Graph_lib.vcxprojResolveAssemblyReference.cache differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Lib-link.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Lib-link.read.1.tlog new file mode 100644 index 000000000..7178d132f Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Lib-link.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Lib-link.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Lib-link.write.1.tlog new file mode 100644 index 000000000..059c34093 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/Lib-link.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/cl.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/cl.command.1.tlog new file mode 100644 index 000000000..a6839a690 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/cl.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/d-heap.obj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/d-heap.obj new file mode 100644 index 000000000..c7ba877ae Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/d-heap.obj differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/dheap-based-priority-queue.obj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/dheap-based-priority-queue.obj new file mode 100644 index 000000000..db347d9fc Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/dheap-based-priority-queue.obj differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/dijkstra.obj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/dijkstra.obj new file mode 100644 index 000000000..ef0b05cd0 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/dijkstra.obj differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/graph.obj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/graph.obj new file mode 100644 index 000000000..2868ceb7f Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/graph.obj differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/lib.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/lib.command.1.tlog new file mode 100644 index 000000000..544696fe2 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/lib.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/priority_queue_heap.obj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/priority_queue_heap.obj new file mode 100644 index 000000000..05b2e72d5 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/priority_queue_heap.obj differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/vc100.idb b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/vc100.idb new file mode 100644 index 000000000..b02cd8075 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/vc100.idb differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/vc100.pdb b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/vc100.pdb new file mode 100644 index 000000000..d461e3b45 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Debug/vc100.pdb differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj new file mode 100644 index 000000000..2077c62dd --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + {12C6BB94-97AD-4058-80DA-4EB7F156CDB8} + Win32Proj + Graph_lib + + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + ..\..\..\..\include + + + Windows + true + true + true + + + + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj.filters b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj.filters new file mode 100644 index 000000000..f8a30a329 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj.filters @@ -0,0 +1,33 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + + + + + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj.user b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj.user new file mode 100644 index 000000000..695b5c78b --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/Graph_lib.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/ReadMe.txt b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/ReadMe.txt new file mode 100644 index 000000000..b860f77f5 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/Graph_lib/ReadMe.txt @@ -0,0 +1,32 @@ +======================================================================== + СТАТИЧЕСКАЯ БИБЛИОТЕКА. Обзор проекта Graph_lib +======================================================================== + +Этот проект библиотеки Graph_lib создан автоматически с помощью +мастера приложений. + +В составе проекта не созданы исходные файлы. + + +Graph_lib.vcxproj + Основной файл проекта VC++, автоматически создаваемый с помощью мастера + приложений. + Он содержит данные о версии языка Visual C++, использованной для создания + файла, а также сведения о платформах, настройках и свойствах проекта, + выбранных с помощью мастера приложений. + +Graph_lib.vcxproj.filters + Это файл фильтров для проектов VC++, созданный с помощью мастера + приложений. + Он содержит сведения о сопоставлениях между файлами в вашем проекте и + фильтрами. Эти сопоставления используются в среде IDE для группировки + файлов с одинаковыми расширениями в одном узле (например файлы ".cpp" + сопоставляются с фильтром "Исходные файлы"). + +///////////////////////////////////////////////////////////////////////////// +Общие замечания: + +С помощью комментариев «TODO:» в мастере приложений обозначаются фрагменты +исходного кода, которые необходимо дополнить или изменить. + +///////////////////////////////////////////////////////////////////////////// diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/ipch/graph_lib-b1bf2895/graph_lib-49706714.ipch b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/ipch/graph_lib-b1bf2895/graph_lib-49706714.ipch new file mode 100644 index 000000000..801d67d5e Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/ipch/graph_lib-b1bf2895/graph_lib-49706714.ipch differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/CL.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/CL.read.1.tlog new file mode 100644 index 000000000..f0ccf8afe Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/CL.read.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/CL.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/CL.write.1.tlog new file mode 100644 index 000000000..bd42d3dd2 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/CL.write.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/cl.command.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/cl.command.1.tlog new file mode 100644 index 000000000..3af65041a Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/cl.command.1.tlog differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.embed.manifest b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.embed.manifest new file mode 100644 index 000000000..e693382a3 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.embed.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.embed.manifest.res b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.embed.manifest.res new file mode 100644 index 000000000..9c8df0e3c Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.embed.manifest.res differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.intermediate.manifest b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.intermediate.manifest new file mode 100644 index 000000000..1c06b6190 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.exe.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.lastbuildstate b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.lastbuildstate new file mode 100644 index 000000000..d25ae31c1 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\| diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.log b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.log new file mode 100644 index 000000000..b84b4818a --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.log @@ -0,0 +1,25 @@ +Построение начато 04.06.2018 14:51:02. + 1>Проект "C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\lab4-Dijkstra\lab4-Dijkstra.vcxproj" в узле 2 (целевые объекты build). + 1>InitializeBuildStatus: + Создание "Debug\lab4-Dijkstra.unsuccessfulbuild", так как было задано "AlwaysCreate". + ClCompile: + Для всех выходных данных обновления не требуется. + ManifestResourceCompile: + Для всех выходных данных обновления не требуется. + Link: + c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\lab4-Dijkstra.exe" /INCREMENTAL /NOLOGO /LIBPATH:..\Debug Graph_lib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Debug\lab4-Dijkstra.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\lab4-Dijkstra.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\lab4-Dijkstra.lib" /MACHINE:X86 "Debug\lab4-Dijkstra.exe.embed.manifest.res" + Debug\sample_dheap.obj + Manifest: + c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"Debug\lab4-Dijkstra.exe.embed.manifest" /manifest "Debug\lab4-Dijkstra.exe.intermediate.manifest" + Для всех выходных данных обновления не требуется. + LinkEmbedManifest: + Для всех выходных данных обновления не требуется. + lab4-Dijkstra.vcxproj -> C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\Debug\lab4-Dijkstra.exe + FinalizeBuildStatus: + Файл "Debug\lab4-Dijkstra.unsuccessfulbuild" удаляется. + Обращение к "Debug\lab4-Dijkstra.lastbuildstate". + 1>Построение проекта "C:\mp2-practice\PiginAP\lab4-Dijkstra\sln\vc10\lab4-Dijkstra\lab4-Dijkstra\lab4-Dijkstra.vcxproj" завершено (целевые объекты build). + +Построение успешно завершено. + +Затраченное время: 00:00:04.09 diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.vcxprojResolveAssemblyReference.cache b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.vcxprojResolveAssemblyReference.cache new file mode 100644 index 000000000..3f0168105 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra.vcxprojResolveAssemblyReference.cache differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra_manifest.rc b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra_manifest.rc new file mode 100644 index 000000000..6e2fe39f2 Binary files /dev/null and b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/lab4-Dijkstra_manifest.rc differ diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.11444.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.12216.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.14576.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.15740.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.16048.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676-cvtres.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676-cvtres.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676-cvtres.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676-cvtres.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676.read.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676.read.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676.write.1.tlog b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676.write.1.tlog new file mode 100644 index 000000000..46b134b19 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/sln/vc10/lab4-Dijkstra/lab4-Dijkstra/Debug/link.1676.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/src/d-heap.cpp b/PiginAP/lab4-Dijkstra/src/d-heap.cpp new file mode 100644 index 000000000..5d3c27506 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/src/d-heap.cpp @@ -0,0 +1,146 @@ +#include "d-heap.h" + +DHeap::DHeap(int d) +{ + if (d <= 0) + throw "DHeap: Nevernaya D-Arnost"; + this->d = d; + lastIdx = -1; + keys = new Data*[maxSize]; +} +//============================================================||============================================================ +DHeap::DHeap(const DHeap &heap) +{ + this->d = heap.d; + keys = new Data*[maxSize]; + for (int i = 0; i <= heap.lastIdx; i++) + keys[i] = heap.keys[i]; + this->lastIdx = heap.lastIdx; +} +//============================================================||============================================================ +DHeap::~DHeap() +{ + delete[] keys; +} +//============================================================||============================================================ +int DHeap::isFull()const +{ + return lastIdx >= maxSize - 1; +} +//============================================================||============================================================ +int DHeap::isEmpty()const +{ + return lastIdx == -1; +} +//============================================================||============================================================ +void DHeap::add(Data *&key) +{ + if (isFull()) + throw "DHeap: No memory"; + lastIdx++; + keys[lastIdx] = key; + surfacing(lastIdx); +} +//============================================================||============================================================ +void DHeap::addSet(Data **key, int num) +{ + if (lastIdx + num >= maxSize) + throw "DHeap: Too large set!"; + for (int i = lastIdx + 1; i < lastIdx + num + 1; i++) + { + keys[i] = key[i - lastIdx - 1]; + } + lastIdx += num; + hilling(); +} +//============================================================||============================================================ +Data* DHeap::erase() +{ + if (isEmpty()) + throw "DHeap: Net dannih!"; + Data* key = keys[lastIdx]; + lastIdx--; + return key; +} +//============================================================||============================================================ +Data* DHeap::erase(int i) +{ + if (isEmpty()) + throw "DHeap: No data!"; + if ((i < 0) || (i > lastIdx)) + throw "DHeap: Neverniy index"; + + Data* key = keys[i]; + if (i == lastIdx) + { + lastIdx--; + return key; + } + transposition(i, lastIdx); + lastIdx--; + immersion(i); + return key; +} +//============================================================||============================================================ +void DHeap::transposition(int i, int j) +{ + if ((i < 0) || (j < 0) || (i > lastIdx) || (j > lastIdx)) + throw "DHeap: Neverniy indexi"; + Data* tmp = keys[i]; + keys[i] = keys[j]; + keys[j] = tmp; +} +//============================================================||============================================================ +void DHeap::surfacing(int i) +{ + if ((i < 0) || (i > lastIdx)) + throw "DHeap: Neverniy index"; + + int p = (i - 1) / d; + while (i > 0) { + if (keys[p]->priorities < keys[i]->priorities) + break; + transposition(p, i); + i = p; + p = (i - 1) / d; + } +} +//============================================================||============================================================ +void DHeap::immersion(int i) +{ + if ((i < 0) || (i > lastIdx)) + throw "DHeap: Neverniy index"; + + int c = minChild(i); + while ((c != -1) && (keys[c]->priorities < keys[i]->priorities)) { + transposition(i, c); + i = c; + c = minChild(i); + } +} +//============================================================||============================================================ +void DHeap::hilling() +{ + for (int i = lastIdx; i >= 0; i--) + immersion(i); +} +//============================================================||============================================================ +int DHeap::minChild(int i) +{ + int f = i * d + 1; + if (f > lastIdx) + return -1; + + int l = std::min(i*d + d, lastIdx); + int c; + + Data* minKey = keys[f]; + c = f; + for (int k = f + 1; k <= l; k++) { + if (minKey->priorities > keys[k]->priorities) { + minKey = keys[k]; + c = k; + } + } + return c; +} \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/src/dheap-based-priority-queue.cpp b/PiginAP/lab4-Dijkstra/src/dheap-based-priority-queue.cpp new file mode 100644 index 000000000..18faccc0e --- /dev/null +++ b/PiginAP/lab4-Dijkstra/src/dheap-based-priority-queue.cpp @@ -0,0 +1,42 @@ +#include "priority-queue.h" + +DHeapBasedPriorityQueue::DHeapBasedPriorityQueue(int d) +{ + heap = new DHeap(d); +} +//============================================================||============================================================ +DHeapBasedPriorityQueue::DHeapBasedPriorityQueue(const DHeapBasedPriorityQueue &queue) +{ + this->heap = new DHeap(*(queue.heap)); +} +//============================================================||============================================================ +DHeapBasedPriorityQueue::DHeapBasedPriorityQueue(Data **keys, int num, int d) +{ + heap = new DHeap(d); + heap->addSet(keys, num); +} +//============================================================||============================================================ +DHeapBasedPriorityQueue::~DHeapBasedPriorityQueue() +{ + delete heap; +} +//============================================================||============================================================ +void DHeapBasedPriorityQueue::push(Data *&key) +{ + heap->add(key); +} +//============================================================||============================================================ +Data* DHeapBasedPriorityQueue::pop() +{ + return heap->erase(0); +} +//============================================================||============================================================ +int DHeapBasedPriorityQueue::isFull()const +{ + return heap->isFull(); +} + +int DHeapBasedPriorityQueue::isEmpty()const +{ + return heap->isEmpty(); +} \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/src/dijkstra.cpp b/PiginAP/lab4-Dijkstra/src/dijkstra.cpp new file mode 100644 index 000000000..e47432b07 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/src/dijkstra.cpp @@ -0,0 +1,63 @@ +#include "Dijkstra.h" + +DataFloat::DataFloat(int v, float dist) +{ + this->v = v; + priorities = dist; +} +//============================================================||============================================================ +void Dijkstra::dijkstra(Graph *&graph, int s, float *&distance, int *&up) +{ + int n = graph->getVerticesNum(); // + int m = graph->getRealSize(); // + if ((s < 0) || (s >= n)) + throw "Not Right start vertices"; + + Data** dist = new Data*[n]; + up = new int[n]; + + DHeapBasedPriorityQueue *queue = new DHeapBasedPriorityQueue(); + + for (int i = 0; i < n; i++) { + up[i] = i; + dist[i] = new DataFloat(i, FLT_MAX); + if (i == s) + dist[s]->priorities = 0; + queue->push(dist[i]); + } + + WeightedEdge** edges = graph->getEdgeSet(); + while (!queue->isEmpty()) + { + int vConsidered = ((DataFloat*)queue->pop())->v; // + float delta; + + for (int i = 0; i < m; i++) + { + int vIncident = -1; // + if (edges[i]->kon_ver == vConsidered) + vIncident = edges[i]->nac_ver; + if (edges[i]->nac_ver == vConsidered) + vIncident = edges[i]->kon_ver; + if (vIncident == -1) continue; + + float way = dist[vConsidered]->priorities + graph->getWeight(vConsidered, vIncident); + delta = dist[vIncident]->priorities - way; + if (delta > 0) + { + dist[vIncident]->priorities = way; + up[vIncident] = vConsidered; + queue->heap->hilling(); + } + } + } + + distance = new float[n]; + for (int i = 0; i < n; i++) + distance[i] = dist[i]->priorities; + + for (int i = 0; i < n; i++) + delete dist[i]; + delete[]dist; + delete queue; +} \ No newline at end of file diff --git a/PiginAP/lab4-Dijkstra/src/graph.cpp b/PiginAP/lab4-Dijkstra/src/graph.cpp new file mode 100644 index 000000000..19999d1e2 --- /dev/null +++ b/PiginAP/lab4-Dijkstra/src/graph.cpp @@ -0,0 +1,178 @@ +#include "graph.h" + +WeightedEdge::WeightedEdge(int _nac_ver, int _kon_ver, float _weight) +{ + this->kon_ver = _kon_ver; + this->nac_ver = _nac_ver; + this->weight = _weight; +} +//============================================================||============================================================ +Graph::Graph(int vershini) +{ + if ((vershini < 0) || (vershini > maxVerticesSize)) + throw "Graph: Nepravilnoe chislo vershin"; + else + this->vershini = vershini; + this->rebra = vershini * (vershini - 1) / 2; + tek_rebro = 0; + vertices = new int[vershini]; + edges = new WeightedEdge*[rebra]; +} +//============================================================||============================================================ +Graph::Graph(int vershini, int rebra) +{ + + if ((vershini < 0) || (vershini > maxVerticesSize)) + throw "Graph: Nepravilnoe chislo vershin"; + else + this->vershini = vershini; + + if ((rebra < 0) || (rebra > vershini*(vershini - 1) / 2) || (rebra < vershini - 1)) + { + throw "Graph: Nepravilnoe chislo reber"; + } + else + this->rebra = rebra; + + tek_rebro = 0; + + vertices = new int[vershini]; + edges = new WeightedEdge*[rebra]; +} +//============================================================||============================================================ +Graph::~Graph() { + cleaner(); + delete[] edges; + delete[] vertices; +} +//============================================================||============================================================ +int Graph::searchEdge(int _nac_ver, int _kon_ver) +{ + for (int i = 0; i < tek_rebro; i++) { + if ((edges[i]->kon_ver == _kon_ver) && + (edges[i]->nac_ver == _nac_ver) || + (edges[i]->nac_ver == _kon_ver) && + (edges[i]->kon_ver == _nac_ver)) + return i; + } + return -1; +} +//============================================================||============================================================ +void Graph::generateVertices(int & nac_ver, int & kon_ver) +{ + do { + nac_ver = rand() % vershini; + kon_ver = rand() % vershini; + } while ((nac_ver == kon_ver) || (searchEdge(nac_ver, kon_ver) != -1)); +} +//============================================================||============================================================ +float Graph::generateWeight(float minRange, float maxRange) +{ + double d = minRange; + double c = (double)(maxRange - minRange) / RAND_MAX; + double result = c * rand() + d; + return result; +} +//============================================================||============================================================ +void Graph::cleaner() +{ + for (int i = 0; i < tek_rebro; i++) + delete edges[i]; +} +//============================================================||============================================================ +void Graph::generateGraph(float minRange, float maxRange) +{ + int nac_ver; + int kon_ver; + float weight; + + if (minRange > maxRange) + throw "Invalid ranges of Graph"; + + if (tek_rebro) { // + cleaner(); + tek_rebro = 0; + } + + srand(time(NULL)); + for (int i = 0; i < rebra; i++) { + generateVertices(nac_ver, kon_ver); + weight = generateWeight(minRange, maxRange); + edges[i] = new WeightedEdge(nac_ver, kon_ver, weight); + tek_rebro++; + } +} +//============================================================||============================================================ +void Graph::addEdge(int nac_ver, int kon_ver, float weight) +{ + if (tek_rebro == rebra) + throw "Graph is full"; + if (nac_ver == kon_ver) + throw "Graph can't cycle"; + if (searchEdge(nac_ver, kon_ver) != -1) + throw "Multiple Edges aren't allowed"; + edges[tek_rebro] = new WeightedEdge(nac_ver, kon_ver, weight); + tek_rebro++; +} +//============================================================||============================================================ +void Graph::removeEdge(int _nac_ver, int _kon_ver) +{ + int j = searchEdge(_nac_ver, _kon_ver); + if (j == -1) + throw "tru delete is not ex. edge"; + delete edges[j]; + edges[j] = edges[tek_rebro - 1]; + tek_rebro--; +} +//============================================================||============================================================ +int Graph::getVerticesNum() +{ + return vershini; +} +//============================================================||============================================================ +int Graph::getEdgeSize() +{ + return rebra; +} +//============================================================||============================================================ +int Graph::getRealSize() +{ + return tek_rebro; +} +//============================================================||============================================================ +WeightedEdge** Graph::getEdgeSet() +{ + if (tek_rebro == 0) + return 0; + return edges; +} +//============================================================||============================================================ +WeightedEdge* Graph::getEdge(int j) +{ + return edges[j]; +} +//============================================================||============================================================ +float Graph::getWeight(int _nac_ver, int _kon_ver) +{ + int j = searchEdge(_nac_ver, _kon_ver); + if (j == -1) + throw "invalide edge"; + return edges[j]->weight; +} +//============================================================||============================================================ +void Graph::printList() +{ + using namespace std; + for (int i = 0; i < vershini; i++) + { + cout << i << " : "; + for (int j = 0; j < tek_rebro; j++) + { + if (edges[j]->nac_ver == i) + cout << edges[j]->kon_ver << '(' << edges[j]->weight << ')' << ", "; + if (edges[j]->kon_ver == i) + cout << edges[j]->nac_ver << '(' << edges[j]->weight << ')' << ", "; + } + cout << endl; + } +} \ No newline at end of file