Объединение, пересечение и разность двух множеств - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста сделать таки операции над множеством как объединение, пересечение и разность Вот часть моего кода
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Myset
{
    public class MySortedSet<T> : ICloneable, IEquatable<MySortedSet<T>>, IEnumerable<T> where T : IComparable
    {
        int count;
        T[] data;
       
        public int Count { get { return count; } }
        int capacity;
        
        public MySortedSet(int capacity)
        {
            this.capacity = capacity;
            data = new T[capacity];
        }
 
        public void Add(T value)
        {
            if (capacity <= count)
                throw new Exception("Set overflow");
            for (int i = 0; i < count; i++)
            {
                if (value.CompareTo(data[i]) == 0)
                    return;
                if (value.CompareTo(data[i]) < 0)
                {
                    for (int j = count - 1; j >= i; j--)
                    {
                        data[j + 1] = data[j];
                    }
                    data[i] = value;
                    count++;
                    return;
                }
            }
            data[count] = value;
            count++;
        }
 
        public void Delet(T value)
        {
            for (int i = 0; i < count; i++)
            {
                if (data[i].Equals(value))
                {
                    for (int j = i; j < count; j++)
                    {
                        data[j] = data[j + 1];
                    }
                    count -= 1;
                }
                else throw new Exception("No this element in set");
                
            }
        }

        public void Search(T value)
        {
            for (int i = 0; i < count; i++)
            {
                if (data[i].Equals(value))
                {
                    return true;
                }
                else throw new Exception("No this element in set");
            }
        }
 
        public static operator *(MySortedSet<T> data, MySortedSet<T> array_2)
        {
            int k;
            k=0;
            s3.size=0;
            for(int i=0;i<count;i++)
                for(int j=0;j<s2.size;j++)
                        if(s2.a[j]==a[i])
                        {
                                s3.a[k]=a[i];
                                k++;
                                s3.size+=1;
                        }
            return s3;
        } 

        public bool Equals(MySortedSet<T> other)
        {
 
            if (other == null)
                return false;
 
            if (this.data == other.data)
                return true;
            else
                return false;
        }

        public object Clone()
        {
            throw new NotImplementedException();
        }
 
        public int CompareTo(MySortedSet<T> other)
        {
            throw new NotImplementedException();
        }
 
        public IEnumerator<T> GetEnumerator()
        {
            for (int i = 0; i < count; i++ )
            {
                yield return data[i];
            }
        }
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            throw new NotImplementedException();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var set = new MySortedSet<int>(10);
            set.Add(2);
            set.Add(1);
            set.Add(2);
            set.Add(3);
            set.Add(10);
            set.Delet(1);
            set.Search(10);
            Console.WriteLine("Count = {0}", set.Count);
            Console.WriteLine("Items:");
            foreach(var item in set)
            Console.WriteLine(item);
 
        }
    }
}

Решение задачи: «Объединение, пересечение и разность двух множеств»

textual
Листинг программы
 static void Show(SortedSet<char> ss, string s)
        {
            Console.WriteLine(s);
            foreach (char ch in ss)
                Console.Write(ch + " ");
            Console.WriteLine("\n");
        }
        static void Main(string[] args)
        {
            SortedSet<char> m1 = new SortedSet<char>();
            SortedSet<char> m2 = new SortedSet<char>();
            m1.Add('A');
            m1.Add('B');
            m1.Add('C');
            m1.Add('Z');
 
            m2.Add('X');
            m2.Add('Y');
            m2.Add('Z');
        
           m1.SymmetricExceptWith(m2);
            Show(m1,"пересечение");
 
            m1.UnionWith(m2);
            Show(m1, "объединение");
          
            m1.ExceptWith(m2);
            Show(m1, "вычитание");
            Console.ReadKey();
 
     
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы