Добавить в цитаты Настройки чтения

Страница 463 из 502

В классе LinkedList<T> определяется немало методов. В табл. 25.16 приведены наиболее часто используемые методы данного класса. Кроме того, в классе LinkedList<T> определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.

<b>public LinkedListNode&lt;T&gt; First { get; }</b>

<b>public LinkedListNode&lt;T&gt; Last { get; }</b>

С помощью свойства First получается первый узел в списке, а с помощью свойства Last — последний узел в списке.

Таблица 25.16. Наиболее часто используемые методы, определенные в классе LinkedList<T>

Метод - Описание

public LinkedListNode<T> AddAfter(LinkedListNode<T> node, T value) - Добавляет в список узел со значением value непосредственно после указанного узла node. Указываемый узел node не должен быть пустым (null). Метод возвращает ссылку на узел, содержащий значение value

public void AddAfter(LinkedListNode<T> node, LinkedListNode<T> newNode) - Добавляет в список новый узел newNode непо

средственно после указанного узла node. Указываемый узел node не должен быть пустым (null). Если узел node отсутствует в списке или если новый узел newNode является частью другого списка, то* генерируется исключение InvalidOperationException

public LinkedListNode<T> AddBefore(LinkedListNode<T> node, T value) - Добавляет в список узел со значением value непо

средственно перед указанным узлом node. Указываемый узел node не должен быть пустым (null). Метод возвращает ссылку на узел, содержащий значение value

public void AddBefore(LinkedListNode<T> node, LinkedListNode<T> newNode) - Добавляет в список новый узел newNode не

посредственно перед указанным узлом node. Указываемый узел node не должен быть пустым (null). Если узел node отсутствует в списке или если новый узел newNode является частью другого списка, то генерируется исключение InvalidOperationException

public LinkedList<T> AddFirst(T value) - Добавляет узел со значением value в начало списка. Метод возвращает ссылку на узел, содержащий значение value

public void AddFirst(LinkedListNode node) - Добавляет узел node в начало списка. Если узел node является частью другого списка, то генерируется исключение InvalidOperationException

public LinkedList<T> AddLast(T value) - Добавляет узел со значением value в конец списка. Метод возвращает ссылку на узел, содержащий значение value

public void AddLast(LinkedListNode node) - Добавляет узел node в конец списка. Если узел node является частью другого списка, то генерируется исключение InvalidOperationException

public LinkedList<T> Find(T value) - Возвращает ссылку на первый узел в списке, имеющий значение value. Если искомое значение value отсутствует в списке, то возвращается пустое значение

public LinkedList<T> FindLast(T value) - Возвращает ссылку на последний узел в списке, имеющий значение value. Если искомое значение value отсутствует в списке, то возвращается пустое значение

public bool Remove(T value) - Удаляет из списка первый узел, содержащий значение value. Возвращает логическое значение true, если узел удален, т.е. если узел со значением value обнаружен в списке и удален; в противном случае возвращает логическое значение false

public void Remove(LinkedList<T> node) - Удаляет из списка узел, соответствующий указанному узлу node. Если узел node отсутствует в списке, то генерируется исключение InvalidOperationException

public void RemoveFirst() - Удаляет из списка первый узел

public void RemoveLast() - Удаляет из списка последний узел

В приведенном ниже примере программы демонстрируется применение класса LinkedList<T>.

<b>// Продемонстрировать применение класса LinkedList&lt;T&gt;.</b>

<b>using System;</b>

<b>using System.Collections.Generic;</b>

<b>class GenLinkedListDemo {</b>

<b>  static void Main() {</b>

<b>    // Создать связный список.</b>

<b>    LinkedList&lt;char&gt; ll = new LinkedList&lt;char&gt;();</b>

<b>    Console.WriteLine(&quot;Исходное количество элементов в списке: &quot; + ll.Count);</b>

<b>    Console.WriteLine();</b>

<b>    Console.WriteLine(&quot;Добавить в список 5 элементов&quot;);</b>

<b>    // Добавить элементы в связный список.</b>

<b>    ll.AddFirst('А');</b>

<b>    ll.AddFirst('В');</b>

<b>    ll.AddFirst('С');</b>

<b>    ll.AddFirst('D');</b>

<b>    ll.AddFirst('Е');</b>

<b>    Console.WriteLine(&quot;Количество элементов в списке: &quot; + ll.Count);</b>

<b>    // Отобразить связный список, обойдя его вручную.</b>

<b>    LinkedListNode&lt;char&gt; node;</b>

<b>    Console.Write(&quot;Отобразить содержимое списка по ссылкам: &quot;);</b>

<b>    for(node = ll.First; node != null; node = node.Next)</b>

<b>      Console.Write(node.Value + &quot; &quot;);</b>

<b>    Console.WriteLine(&quot;n&quot;) ;</b>

<b>    // Отобразить связный список, обойдя его в цикле foreach.</b>

<b>    Console.Write(&quot;Отобразить содержимое списка в цикле foreach: &quot;);</b>

<b>    foreach(char ch in ll)</b>