Added delete method to doubly linked list
This commit is contained in:
		@@ -90,6 +90,26 @@ namespace C_.Datastructures
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool Delete(int index){
 | 
			
		||||
            DoublyLinkedListNode<T>? node = Traverse(index);
 | 
			
		||||
 | 
			
		||||
            if (node == default) return false;
 | 
			
		||||
 | 
			
		||||
            if(node.Prev != default){
 | 
			
		||||
                //connect item beofre to item after node we are deleting
 | 
			
		||||
                node.Prev.Next = node.Next;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //Connect item after to the the item before the node we are deleting
 | 
			
		||||
            if (node.Next != default)
 | 
			
		||||
            {
 | 
			
		||||
                node.Next.Prev = node.Prev;                
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Count--;
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        private DoublyLinkedListNode<T>? Traverse()
 | 
			
		||||
        {
 | 
			
		||||
 
 | 
			
		||||
@@ -144,14 +144,14 @@ namespace C_.Datastructures
 | 
			
		||||
        //    return node;
 | 
			
		||||
        //}
 | 
			
		||||
 | 
			
		||||
        private LinkedListNode<T>? Traverse(int n)
 | 
			
		||||
        private LinkedListNode<T>? Traverse(int i)
 | 
			
		||||
        {
 | 
			
		||||
            //Start at given point in list
 | 
			
		||||
            LinkedListNode<T>? node = Head;
 | 
			
		||||
            if (node != null || n == 0)
 | 
			
		||||
            if (node != null || i == 0)
 | 
			
		||||
            {
 | 
			
		||||
                //Continue to end of list
 | 
			
		||||
                for (int i = 0; i < n; i++)
 | 
			
		||||
                for (int j = 0; j < i; j++)
 | 
			
		||||
                {
 | 
			
		||||
                    if (node!.Next == null) return null;
 | 
			
		||||
                    node = (LinkedListNode<T>)node.Next;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user