예제 #1
0
        void PlaceinTheList(Mochila x)
        {
            if (x.Position().Equals(0))
            {
                listBox1.Items.Clear();
            }
            if (x.Next() != null)
            {
                if (x.Previous() != null)
                {
                    listBox1.Items.Add(x.Position() + ": Mochila " + x.Index() + " e dentro tem a " +
                                       x.Next().Index() +
                                       " e está dentro da " + x.Previous().Index());
                }
                else
                {
                    listBox1.Items.Add(x.Position() + ": Mochila " + x.Index() + " e dentro tem a " +
                                       x.Next().Index() + " e não está dentro de nenhuma");
                }

                PlaceinTheList(x.Next());
            }
            else
            {
                if (x.Previous() != null)
                {
                    listBox1.Items.Add(x.Position() + ": Mochila " + x.Index() + " e dentro tem nada e está dentro da " + x.Previous().Index());
                }
                else
                {
                    listBox1.Items.Add(x.Position() + ": Mochila " + x.Index() + " e dentro tem nada e não está dentro de nenhuma");
                }
                textBox4.Text = (x.Position() + 1).ToString();
            }
        }
예제 #2
0
        void ChangePosition(Mochila x, Mochila y)
        {
            Mochila w = new Mochila();

            w = x;
            int ew = w.Index();

            x = y;
            y = w;
            y.Index(x.Index());
            x.Index(ew);
        }
예제 #3
0
 Mochila AddEnd(Mochila x, int posicao, int tamanho)
 {
     if (x.Index() >= tamanho)
     {
         tamanho = x.Index() + 1;
     }
     if (x.Next() != null)
     {
         x.Next(AddEnd(x.Next(), posicao + 1, tamanho));
     }
     else
     {
         x.Next(new Mochila());
         x.Next().Previous(x);
         x.Next().Position(posicao);
         x.Next().Index(tamanho);
     }
     return(x);
 }
예제 #4
0
 Mochila AddEnd(Mochila x, int position, int index)
 {
     if (x.Index() >= index)
     {
         index = x.Index() + 1;
     }
     if (x.Next() != null)
     {
         x.Next(AddEnd(x.Next(), position + 1, index));
     }
     else
     {
         x.Next(new Mochila());
         x.Next().Previous(x);
         x.Next().Position(position);
         x.Next().Index(index);
     }
     return(x);
 }
예제 #5
0
 private void AddElement(object sender, EventArgs e)
 {
     if (m != null)
     {
         m = AddEnd(m, 1, 1);
     }
     else
     {
         m = new Mochila();
         m.Index(1);
     }
     PlaceinTheList(m);
 }
예제 #6
0
 private void AddElement(object sender, EventArgs e)
 {
     if (element != null)
     {
         element = AddEnd(element, 1, 1);
     }
     else
     {
         element = new Mochila();
         element.Index(1);
     }
     PlaceinTheList(element);
 }