<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FCollections_Data_Structure%2FSet</id>
		<title>Csharp/C Sharp/Collections Data Structure/Set - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FCollections_Data_Structure%2FSet"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Collections_Data_Structure/Set&amp;action=history"/>
		<updated>2026-04-29T16:41:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Collections_Data_Structure/Set&amp;diff=632&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Collections_Data_Structure/Set&amp;diff=632&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Collections_Data_Structure/Set&amp;diff=633&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Collections_Data_Structure/Set&amp;diff=633&amp;oldid=prev"/>
				<updated>2010-05-26T11:39:16Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Put the Set class into its own namespace==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# A Beginner&amp;quot;s Guide&lt;br /&gt;
By Schildt&lt;br /&gt;
Publisher: Osborne McGraw-Hill&lt;br /&gt;
ISBN: 0072133295&lt;br /&gt;
*/&lt;br /&gt;
using System;  &lt;br /&gt;
using MyTypes.Set;&lt;br /&gt;
/*  &lt;br /&gt;
   Project 12-1  &lt;br /&gt;
  &lt;br /&gt;
   Put the Set class into its own namespace. &lt;br /&gt;
*/  &lt;br /&gt;
namespace MyTypes.Set { &lt;br /&gt;
   &lt;br /&gt;
  class Set {     &lt;br /&gt;
    char[] members; // this array holds the set     &lt;br /&gt;
    int len; // number of members  &lt;br /&gt;
  &lt;br /&gt;
    // Construct a null set.  &lt;br /&gt;
    public Set() {  &lt;br /&gt;
      len = 0;  &lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
    // Construct an empty set of a given size.    &lt;br /&gt;
    public Set(int size) {     &lt;br /&gt;
      members = new char[size]; // allocate memory for set     &lt;br /&gt;
      len = 0; // no members when constructed  &lt;br /&gt;
    }     &lt;br /&gt;
    &lt;br /&gt;
    // Construct a set from another set.  &lt;br /&gt;
    public Set(Set s) {     &lt;br /&gt;
      members = new char[s.len]; // allocate memory for set     &lt;br /&gt;
      for(int i=0; i &amp;lt; s.len; i++) members[i] = s[i];  &lt;br /&gt;
      len = s.len; // number of members  &lt;br /&gt;
    }     &lt;br /&gt;
  &lt;br /&gt;
    // Implement read-only Length property.  &lt;br /&gt;
    public int Length {  &lt;br /&gt;
      get{  &lt;br /&gt;
        return len;  &lt;br /&gt;
      }  &lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
    // Implement read-only indexer.  &lt;br /&gt;
    public char this[int idx]{  &lt;br /&gt;
      get {  &lt;br /&gt;
        if(idx &amp;gt;= 0 &amp;amp; idx &amp;lt; len) return members[idx];  &lt;br /&gt;
        else return (char)0;  &lt;br /&gt;
      }  &lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
    /* See if an element is in the set.     &lt;br /&gt;
       Return the index of the element  &lt;br /&gt;
       or -1 if not found. */  &lt;br /&gt;
    int find(char ch) {  &lt;br /&gt;
      int i;  &lt;br /&gt;
      &lt;br /&gt;
      for(i=0; i &amp;lt; len; i++)  &lt;br /&gt;
        if(members[i] == ch) return i;  &lt;br /&gt;
  &lt;br /&gt;
      return -1;  &lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
    // Add a unique element to a set.     &lt;br /&gt;
    public static Set operator +(Set ob, char ch) {   &lt;br /&gt;
      Set newset = new Set(ob.len + 1); // make a new set one element larger  &lt;br /&gt;
  &lt;br /&gt;
      // copy elements  &lt;br /&gt;
      for(int i=0; i &amp;lt; ob.len; i++)  &lt;br /&gt;
        newset.members[i] = ob.members[i];  &lt;br /&gt;
  &lt;br /&gt;
      // set len  &lt;br /&gt;
      newset.len = ob.len;  &lt;br /&gt;
     &lt;br /&gt;
      // see if element already exists  &lt;br /&gt;
      if(ob.find(ch) == -1) { // if not found, then add  &lt;br /&gt;
        // add new element to new set  &lt;br /&gt;
        newset.members[newset.len] = ch;  &lt;br /&gt;
        newset.len++;  &lt;br /&gt;
      }  &lt;br /&gt;
      return newset; // return updated set  &lt;br /&gt;
    }     &lt;br /&gt;
  &lt;br /&gt;
    // Remove an element from the set.     &lt;br /&gt;
    public static Set operator -(Set ob, char ch) {   &lt;br /&gt;
      Set newset = new Set();   &lt;br /&gt;
      int i = ob.find(ch); // i will be -1 if element not found  &lt;br /&gt;
  &lt;br /&gt;
      // copy and compress the remaining elements  &lt;br /&gt;
      for(int j=0; j &amp;lt; ob.len; j++)  &lt;br /&gt;
        if(j != i) newset = newset + ob.members[j];  &lt;br /&gt;
  &lt;br /&gt;
      return newset;  &lt;br /&gt;
    }     &lt;br /&gt;
  &lt;br /&gt;
    // Set union.  &lt;br /&gt;
    public static Set operator +(Set ob1, Set ob2) {   &lt;br /&gt;
      Set newset = new Set(ob1); // copy the first set  &lt;br /&gt;
  &lt;br /&gt;
      // add unique elements from second set  &lt;br /&gt;
      for(int i=0; i &amp;lt; ob2.len; i++)   &lt;br /&gt;
          newset = newset + ob2[i];  &lt;br /&gt;
  &lt;br /&gt;
      return newset; // return updated set  &lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
    // Set difference.  &lt;br /&gt;
    public static Set operator -(Set ob1, Set ob2) {   &lt;br /&gt;
      Set newset = new Set(ob1); // copy the first set  &lt;br /&gt;
  &lt;br /&gt;
      // subtract elements from second set  &lt;br /&gt;
      for(int i=0; i &amp;lt; ob2.len; i++)   &lt;br /&gt;
        newset = newset - ob2[i];  &lt;br /&gt;
  &lt;br /&gt;
      return newset; // return updated set  &lt;br /&gt;
    }  &lt;br /&gt;
  }     &lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
// Demonstrate the Set class.    &lt;br /&gt;
public class SetDemo10 {    &lt;br /&gt;
  public static void Main() {    &lt;br /&gt;
    // construct 10-element empty Set   &lt;br /&gt;
    Set s1 = new Set();    &lt;br /&gt;
    Set s2 = new Set(); &lt;br /&gt;
    Set s3 = new Set(); &lt;br /&gt;
 &lt;br /&gt;
    s1 = s1 + &amp;quot;A&amp;quot;; &lt;br /&gt;
    s1 = s1 + &amp;quot;B&amp;quot;; &lt;br /&gt;
    s1 = s1 + &amp;quot;C&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
    Console.Write(&amp;quot;s1 after adding A B C: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s1.Length; i++)     &lt;br /&gt;
      Console.Write(s1[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    s1 = s1 - &amp;quot;B&amp;quot;; &lt;br /&gt;
    Console.Write(&amp;quot;s1 after s1 = s1 - &amp;quot;B&amp;quot;: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s1.Length; i++)     &lt;br /&gt;
      Console.Write(s1[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    s1 = s1 - &amp;quot;A&amp;quot;; &lt;br /&gt;
    Console.Write(&amp;quot;s1 after s1 = s1 - &amp;quot;A&amp;quot;: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s1.Length; i++)     &lt;br /&gt;
      Console.Write(s1[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    s1 = s1 - &amp;quot;C&amp;quot;; &lt;br /&gt;
    Console.Write(&amp;quot;s1 after a1 = s1 - &amp;quot;C&amp;quot;: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s1.Length; i++)     &lt;br /&gt;
      Console.Write(s1[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(&amp;quot;\n&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
    s1 = s1 + &amp;quot;A&amp;quot;; &lt;br /&gt;
    s1 = s1 + &amp;quot;B&amp;quot;; &lt;br /&gt;
    s1 = s1 + &amp;quot;C&amp;quot;; &lt;br /&gt;
    Console.Write(&amp;quot;s1 after adding A B C: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s1.Length; i++)     &lt;br /&gt;
      Console.Write(s1[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    s2 = s2 + &amp;quot;A&amp;quot;; &lt;br /&gt;
    s2 = s2 + &amp;quot;X&amp;quot;; &lt;br /&gt;
    s2 = s2 + &amp;quot;W&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
    Console.Write(&amp;quot;s2 after adding A X W: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s2.Length; i++)     &lt;br /&gt;
      Console.Write(s2[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    s3 = s1 + s2; &lt;br /&gt;
    Console.Write(&amp;quot;s3 after s3 = s1 + s2: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s3.Length; i++)     &lt;br /&gt;
      Console.Write(s3[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    s3 = s3 - s1; &lt;br /&gt;
    Console.Write(&amp;quot;s3 after s3 - s1: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s3.Length; i++)     &lt;br /&gt;
      Console.Write(s3[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(&amp;quot;\n&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
    s2 = s2 - s2; // clear s2 &lt;br /&gt;
    s2 = s2 + &amp;quot;C&amp;quot;; // add ABC in reverse order &lt;br /&gt;
    s2 = s2 + &amp;quot;B&amp;quot;; &lt;br /&gt;
    s2 = s2 + &amp;quot;A&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
    Console.Write(&amp;quot;s1 is now: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s1.Length; i++)     &lt;br /&gt;
      Console.Write(s1[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    Console.Write(&amp;quot;s2 is now: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s2.Length; i++)     &lt;br /&gt;
      Console.Write(s2[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    Console.Write(&amp;quot;s3 is now: &amp;quot;);  &lt;br /&gt;
    for(int i=0; i&amp;lt;s3.Length; i++)     &lt;br /&gt;
      Console.Write(s3[i] + &amp;quot; &amp;quot;);    &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
  }    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>