static void Main(string[] args) { string re55 = ReplaceSpacesWithCode("danas je lijep dan."); int[] arr = new int[] { 5, 2, 3, 8, 1 }; InsertionSort(arr); int[] arr2 = new int[5] { 5, 2, 3, 8, 1 }; BubbleSort(arr2); int[] arr3 = new int[] { 5, 2,3,8,1}; SelectionSort(arr3); int[] arr4 = new int[] { 8, 5, 4, 7, 6, 1, 6, 3, 8, 12, 10 }; QuickSort(arr4); int z = 55; //Graph graph = new Graph(); //Node a = new Node('a'); graph.Nodes.Add(a); //Node b = new Node('b'); graph.Nodes.Add(b); //Node c = new Node('c'); graph.Nodes.Add(c); //Node d = new Node('d'); graph.Nodes.Add(d); //Node e = new Node('e'); graph.Nodes.Add(e); //Node f = new Node('f'); graph.Nodes.Add(f); //Node g = new Node('g'); graph.Nodes.Add(g); //Node h = new Node('h'); graph.Nodes.Add(h); //Node i = new Node('i'); graph.Nodes.Add(i); //a.AddAdjencyNode(e); a.AddAdjencyNode(f); a.AddAdjencyNode(g); a.AddAdjencyNode(i); //b.AddAdjencyNode(g); //c.AddAdjencyNode(h); //d.AddAdjencyNode(h); //e.AddAdjencyNode(a); e.AddAdjencyNode(f); e.AddAdjencyNode(i); //f.AddAdjencyNode(a); f.AddAdjencyNode(e); f.AddAdjencyNode(i); //g.AddAdjencyNode(a); g.AddAdjencyNode(b); //h.AddAdjencyNode(c); h.AddAdjencyNode(d); //i.AddAdjencyNode(a); i.AddAdjencyNode(e); i.AddAdjencyNode(f); //List<Edge> edges = graph.BFS(); //foreach (Edge edge in edges) //{ // Console.WriteLine("{0}:{1}-{2}:{3}", edge.A.Value, edge.A.Tag, edge.B.Value, edge.B.Tag); //} Graph graph = new Graph(); Node a = new Node('a'); graph.Nodes.Add(a); Node b = new Node('b'); graph.Nodes.Add(b); Node c = new Node('c'); graph.Nodes.Add(c); Node d = new Node('d'); graph.Nodes.Add(d); Node e = new Node('e'); graph.Nodes.Add(e); Node f = new Node('f'); graph.Nodes.Add(f); Node g = new Node('g'); graph.Nodes.Add(g); Node h = new Node('h'); graph.Nodes.Add(h); Node i = new Node('i'); graph.Nodes.Add(i); Node j = new Node('j'); graph.Nodes.Add(j); Edge e1 = new Edge(a, e, 1); graph.AddEdge(e1); Edge e2 = new Edge(a, h, 10); graph.AddEdge(e2); Edge e3 = new Edge(b, c, 2); graph.AddEdge(e3); Edge e4 = new Edge(d, a, 4); graph.AddEdge(e4); Edge e5 = new Edge(d, h, 1); graph.AddEdge(e5); Edge e6 = new Edge(e, f, 3); graph.AddEdge(e6); Edge e7 = new Edge(f, b, 1); graph.AddEdge(e7); Edge e8 = new Edge(f, c, 3); graph.AddEdge(e8); Edge e9 = new Edge(f, g, 7); graph.AddEdge(e9); Edge e10 = new Edge(f, i, 1); graph.AddEdge(e10); Edge e11 = new Edge(h, e, 5); graph.AddEdge(e11); Edge e12 = new Edge(h, i, 9); graph.AddEdge(e12); Edge e13 = new Edge(i, j, 2); graph.AddEdge(e13); Edge e14 = new Edge(j, g, 1); graph.AddEdge(e14); graph.Dijkstra(d); BSTree bsTree = new BSTree(); bsTree.AddNode(15); bsTree.AddNode(5); bsTree.AddNode(1); bsTree.AddNode(8); bsTree.AddNode(25); bsTree.AddNode(20); bsTree.AddNode(41); bsTree.AddNode(36); bsTree.DeleteByCopying(15); bsTree.DeleteByCopying(1); bsTree.DeleteByCopying(5); bsTree.DeleteByCopying(25); bsTree.DeleteByMerging(15); bsTree.DeleteByMerging(1); bsTree.DeleteByMerging(5); bsTree.DeleteByMerging(25); int value = bsTree.Find(8).Value; TreeNode tn = bsTree.Find(111); bsTree.BFS(); Console.WriteLine("--------------------------"); bsTree.DFSPreorder(); Console.WriteLine("--------------------------"); bsTree.DFSInorder(); Console.WriteLine("--------------------------"); bsTree.DFSPostorder(); Console.WriteLine("--------------------------"); bsTree.DFSPreorderStack(); int resa = 0; }
public void AddAdjencyNode(Node n) { adjencyNodes.Add(n); }
public void Dijkstra(Node n) { foreach (Node node in Nodes) node.Tag = 1000; n.Tag = 0; List<Node> toBeChecked = new List<Node>(Nodes); while (toBeChecked.Count != 0) { //find minimum dist int min = 1000; Node minNode = null; for (int i = 0; i < toBeChecked.Count; i++) { if (min > toBeChecked[i].Tag) { minNode = toBeChecked[i]; min = minNode.Tag; } } toBeChecked.Remove(minNode); if (minNode.AdjencyNodes.Count != 0) { foreach (Node an in minNode.AdjencyNodes) { if (toBeChecked.Contains(an)) { string key = minNode.Value.ToString() + an.Value.ToString(); if (minNode.Tag + Edges[key].Weight < an.Tag) { an.Tag = minNode.Tag + Edges[key].Weight; } } } } //for ajd call new dist and if distance is smaller then current, update and //and put adj node to toBeChecked } }
private void dfs(Node n, List<Edge> edges, ref int index) { n.Tag = ++index; foreach (Node an in n.AdjencyNodes) { if (an.Tag == 0) { edges.Add(new Edge(n, an)); dfs(an, edges, ref index); } } }
public Edge(Node a, Node b, int weight) { this.a = a; this.b = b; this.weight = weight; this.name = a.Value.ToString() + b.Value.ToString(); }