Exemple #1
0
        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;
        }
Exemple #2
0
 public void AddAdjencyNode(Node n)
 {
     adjencyNodes.Add(n);
 }
Exemple #3
0
        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

            }
        }
Exemple #4
0
 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);
         }
     }
 }
Exemple #5
0
 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();
 }