Объединение, пересечение и разность двух множеств - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д