Автомобиль: транспортное средство
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Здание: жилое помещение

Книга: набор печатных слов

Трактор: сельскохозяйственная машина

Яблоко: съедобный фрукт

--Содержимое списка, полученное с помощью целочисленных индексов.

Транспортное средство

Жилое помещение

Набор печатных слов

Съедобный фрукт

 --Целочисленные индексы элементов списка.

 автомобиль: 0

 здание: 1

 книга: 2

 яблоко: 3

Класс Stack

Стек представляет собой список, добавление и удаление элементов к которому осуществляется по принципу "последним пришел — первым обслужен" (last-in, first-out — LIFO).

Стек — это динамическая коллекция, которая при необходимости увеличивается, чтобы принять для хранения новые элементы.

Стек реализует интерфейсы:

• ICollection,

• IEnumerable,

• ICloneable.

Методы, определенные в классе Stack

Метод Описание
public virtual bool Contains(object value) Возвращает значение true, если объект value содержится в вызывающем стеке. В противном случае возвращает значение false
public virtual void Clear() Устанавливает свойство Count равным нулю, тем самым эффективно очищая стек
public virtual object Peek() Возвращает элемент, располо­женный в вершине стека, но не удаляет его
public virtual object Pop() Возвращает элемент, располо­женный в вершине стека, и удаляет его
public virtual void        Push(object value) Помещает объект value в стек
public static Stack Synchronized(Stack stk) Возвращает синхронизирован­ную версию stack-списка, переданного в параметре stk
public virtual object[ ]                         ToArray() Возвращает массив, который содержит копии элементов вызывающе­го стека

// Демонстрация использования класса Stack.

 

using System;

using System. Collections;

Class StackDemo

{

public static void Main()

{

   int a;

   Stack st = new Stack();

   st.Push(22);

   st.Push(65);

   st.Push(91);

   foreach (int i in st) Console.Write(i + " ");

   Console.WriteLine();

   try

   {

       a = (int)st.Pop(); Console.WriteLine(a);

       a = (int)st.Pop(); Console.WriteLine(a);

       a = (int)st.Pop(); Console.WriteLine(a);

       a = (int)st.Pop(); Console.WriteLine(a);

   }

   catch (InvalidOperationException)

   {

       Console.WriteLine("Стек пуст.");

   }

}

}

Хранение битов с помощью класса BitArray

Класс BitArray предназначен для поддержки коллекции битов. Поскольку его на­значение состоит в хранении битов, а не объектов, то и его возможности отличаются от возможностей других коллекций. Тем не менее, класс BitArray поддерживает базо­вый набор средств коллекции посредством реализации интерфейсов iCollection, lEnumerable и ICloneable.

    С помощью этого конструктора можно создать BitArray-коллекцию заданного размера:

Public BitArray (int size)

Здесь параметр size задает количество битов в коллекции, причем все они ини­циализируются значением false.

public BitArray (bool[] bits)

В этом случае каждый элемент массива bits становится битом BitArray-коллекции. При этом каждый бит в коллекции соответствует элементу массива bits. Более того, порядок элементов массива bits аналогичен порядку битов в коллекции.

BitArray-коллекцию можно также создать из массива байтов. Для этого исполь­зуйте следующий конструктор:


   public BitArray (byte[] bits)

Здесь битами коллекции становится набор битов, содержащийся в массиве bits, причем элемент bits[0] определяет первые восемь битов, элемент bits[1] — вторые восемь битов и т.д.


Подобным образом можно создать Bit Array-коллекцию из массива других типов.

BitArray-коллекций могут быть индексированными. Каждый индекс соответству­ет определенному биту, причем нулевой индекс соответствует младшему биту.

В коллекции созданы методы для выполнения логических операций с битами.

// Демонстрация использования класса BitArray.

using System;

using System.Collections;

Class BADemo

{

public static void showBits(string rem, BitArray bits)

{

   Console.WriteLine(rem);

   for (int i = 0; i < bits.Count; i++)

       Console.Write("{0, -6} ", bits[i]);

   Console.WriteLine("\n");

}

public static void Main()

{

BitArray ba = new BitArray(8);               // все биты = false

byte[] b = { 67 };

BitArray ba2 = new BitArray(b);

Console.Write("Бит 5 = {0, -6} ", ba2[5]);

  showBits("Исходное содержимое бит.коллекции ba:", ba);

ba = ba.Not();

  showBits ("Содержимое коллек. ba после вызова Not():", ba);

showBits("Содержимое коллекции ba2:", ba2);

BitArray ba3 = ba.Xor(ba2);

showBits("Результат операции ba XOR ba2:", ba3);

}

}

Дата: 2019-02-02, просмотров: 250.