示例#1
0
 public void AddBefore(LLKSTT_60_D_node <T> node, LLKSTT_60_D_node <T> newNode)
 {
     if (First != null)
     {
         LLKSTT_60_D_node <T> temp = First;
         while (temp != null)
         {
             if (temp.Value.Equals(node.Value))
             {
                 break;
             }
             temp = temp.Next;
         }
         if (temp != null)
         {
             if (temp == First)
             {
                 this.AddFirst(newNode);
             }
             else
             {
                 newNode.Previous      = temp.Previous;
                 newNode.Previous.Next = newNode;
                 temp.Previous         = newNode;
                 newNode.Next          = temp;
             }
         }
     }
 }
示例#2
0
            public bool Remove(LLKSTT_60_D_node <T> node)
            {
                if (First != null)
                {
                    if (node.Value.Equals(First.Value))
                    {
                        RemoveFirst();
                        return(true);
                    }
                    LLKSTT_60_D_node <T> i = First;

                    while (i != null)
                    {
                        if (i.Value.Equals(node.Value))
                        {
                            break;
                        }
                        i = i.Next;
                    }
                    if (i != null)
                    {
                        if (i == Last)
                        {
                            RemoveLast();
                            return(true);
                        }
                        i.Previous.Next = i.Next;
                        i.Next.Previous = i.Previous;
                        return(true);
                    }
                }
                return(false);
            }
示例#3
0
            public void AddAfter(LLKSTT_60_D_node <T> node, LLKSTT_60_D_node <T> newNode)
            {
                LLKSTT_60_D_node <T> temp = First;

                while (temp != null)
                {
                    if (temp.Value.Equals(node.Value))
                    {
                        break;
                    }
                    temp = temp.Next;
                }
                if (temp != null)
                {
                    if (temp == Last)
                    {
                        this.AddLast(newNode);
                    }
                    else
                    {
                        newNode.Next          = temp.Next;
                        newNode.Next.Previous = newNode;
                        newNode.Previous      = temp;
                        temp.Next             = newNode;
                    }
                }
            }
示例#4
0
            public LLKSTT_60_D_node <T> AddFirst(T value)
            {
                LLKSTT_60_D_node <T> node = new LLKSTT_60_D_node <T>(value);

                AddFirst(node);
                return(node);
            }
示例#5
0
            public LLKSTT_60_D_node <T> AddLast(T value)
            {
                LLKSTT_60_D_node <T> node = new LLKSTT_60_D_node <T>(value);

                this.AddLast(node);
                return(node);
            }
示例#6
0
 public void RemoveLast()
 {
     if (Last != null)
     {
         Last      = Last.Previous;
         Last.Next = null;
     }
 }
示例#7
0
 public void RemoveFirst()
 {
     if (First != null)
     {
         First          = First.Next;
         First.Previous = null;
     }
 }
示例#8
0
            int dodai()
            {
                int dodai = 0;

                for (LLKSTT_60_D_node <T> i = First; i != null; i = i.Next)
                {
                    dodai++;
                }
                return(dodai);
            }
示例#9
0
 public void AddLast(LLKSTT_60_D_node <T> node)
 {
     if (Last == null)
     {
         First = node;
         Last  = node;
     }
     else
     {
         Last.Next     = node;
         node.Previous = Last;
         Last          = node;
     }
 }
示例#10
0
 public void AddFirst(LLKSTT_60_D_node <T> node)
 {
     if (First == null)
     {
         First = node;
         Last  = node;
     }
     else
     {
         First.Previous = node;
         node.Next      = First;
         First          = node;
     }
 }
示例#11
0
 public void Show()
 {
     if (First == null)
     {
         Console.WriteLine("Danh sach lien ket doi rong");
     }
     else
     {
         for (LLKSTT_60_D_node <T> i = First; i != null; i = i.Next)
         {
             Console.WriteLine(i.Value);
         }
     }
 }
示例#12
0
            public LLKSTT_60_D_node <T> Find(T value)
            {
                LLKSTT_60_D_node <T> i = First;

                while (i != null)
                {
                    if (i.Value.Equals(value))
                    {
                        break;
                    }
                    i = i.Next;
                }
                if (i != null)
                {
                    return(i);
                }
                return(new LLKSTT_60_D_node <T>(value));
            }
示例#13
0
            public LLKSTT_60_D_node <T> FindLast(T value)
            {
                LLKSTT_60_D_node <T> i = Last;

                while (i != null)
                {
                    if (i.Value.Equals(value))
                    {
                        break;
                    }
                    i = i.Previous;
                }
                if (i != null)
                {
                    return(i);
                }
                return(new LLKSTT_60_D_node <T>(value));
            }
示例#14
0
        public static void tuan11_main()
        {
            LLKSTT_60_D <int>      list = new LLKSTT_60_D <int>();
            LLKSTT_60_D_node <int> node = new LLKSTT_60_D_node <int>();

            node.Value = 45;
            list.AddLast(node);
            node = new LLKSTT_60_D_node <int>(3);
            list.AddFirst(node);
            node = new LLKSTT_60_D_node <int>(4);
            list.AddLast(node);
            node = new LLKSTT_60_D_node <int>(55);
            list.AddLast(node);
            node = new LLKSTT_60_D_node <int>(45);
            LLKSTT_60_D_node <int> newNode = new LLKSTT_60_D_node <int>(2);

            list.AddBefore(node, newNode);
            newNode = new LLKSTT_60_D_node <int>(1);
            list.AddAfter(node, newNode);
            node = new LLKSTT_60_D_node <int>(5);
            list.Remove(node);
            list.Show();
            Console.ReadKey();
        }
示例#15
0
            public void AddBefore(LLKSTT_60_D_node <T> node, T value)
            {
                LLKSTT_60_D_node <T> newNode = new LLKSTT_60_D_node <T>(value);

                AddBefore(node, newNode);
            }
示例#16
0
            public void AddAfter(LLKSTT_60_D_node <T> node, T value)
            {
                LLKSTT_60_D_node <T> newNode = new LLKSTT_60_D_node <T>(value);

                AddAfter(node, newNode);
            }
示例#17
0
 public void Clear()
 {
     First = null;
     Last  = null;
 }