Sunday, October 2, 2016

SET ADT - Array Implementation

using System;

namespace Set_Array_Implementation
{
     class Set
     {
          private bool [] set;
          private int size;

          public bool isMember(int element)
          {
               return set[element];
          }

          public void insert(int element)
          {
               set[element] = true;
          }

          public void delete(int element)
          {
               set[element] = false;
          }

          public void makenull()
          {
               for (int i = 1; i <= size; i++)
                    set[i] = false;
          }

          public Set(int size)
          {
               this.size = size;
               set = new bool[this.size + 1];
          }

          public bool isEmpty()
          {         
               foreach (bool element in set)
               {
                    if (element)
                         return false;
               }
               return true;
          }

          public Set Union(Set S)
          {
               Set newSet = new Set(size + 1);
               for (int i = 1; i <= size; i++)
               {
                    if (isMember(i) || S.isMember(i))
                    {
                         newSet.insert(i);
                    }
               }
               return newSet;
          }

          public Set Intersection(Set S)
          {
               Set newSet = new Set(size + 1);
               for (int i = 1; i <= size; i++)
               {
                    if (isMember(i) && S.isMember(i))
                    {
                         newSet.insert(i);
                    }
               }
               return newSet;
          }

          public Set Difference(Set S)
          {
               Set newSet = new Set(size + 1);
               for (int i = 1; i <= size; i++)
               {
                    if (isMember(i) && !S.isMember(i))
                    {
                         newSet.insert(i);
                    }
               }
               return newSet;
          }

          public void print()
          {
               string str = "";
               for (int i = 1; i <= size; i++)
               {
                    if (set[i])
                         str +=  i + " ";
               }
              
               if (str.Equals(""))
               {
                    Console.WriteLine("Set is Empty");
               }
               else
               {
                    Console.WriteLine("{" + string.Join(", ", str.TrimEnd().Split(' ')) + "}");
               }
          }

     }
}

--------------------------------------------------------------------------------------------------------------------


Driver Program Using Set ADT





using System;

namespace Set_Array_Implementation
{
     class Program
     {
          static void Main(string[] args)
          {
               Set A = new Set(10);
               Set B = new Set(10);
               Set C;

               A.insert(1);
               A.insert(3);
               A.insert(4);
               Console.Write("Set A = ");
               A.print();

               B.insert(2);
               B.insert(3);
               B.insert(5);
               Console.Write("Set B = ");
               B.print();

               C = A.Union(B);
               Console.Write("Union of A and B = ");
               C.print();

               C = A.Intersection(B);
               Console.Write("Intersection of A and B = ");
               C.print();

               C = A.Difference(B);
               Console.Write("Difference of A and B = ");
               C.print();

               Console.WriteLine("Press any key to continue.");
               Console.ReadKey();  
          }
     }
}

No comments:

Post a Comment