"рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрдд рдЕрд╕реЗрд▓ рдХреА рдЖрдореНрд╣реА рд╕рд░реНрд╡ рд▓рд┐рд╕реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╣ рдкреВрд░реНрдг рдХреЗрд▓реЗ рдЖрд╣реЗ, рддрд░ рддреБрдореНрд╣реА рдЪреБрдХрдд рдЖрд╣рд╛рдд. рдЖрдореНрд╣реА рдЖрддреНрддрд╛рдЪ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдд рдЖрд╣реЛрдд. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ LinkedList рдЖрдгрд┐ ArrayList рд╕рдВрдЧреНрд░рд╣рд╛рдВрдмрджреНрджрд▓ рд╕рд╛рдВрдЧреВ рджреЗ ."

"рдореА ArrayList рд╕рдВрдЧреНрд░рд╣рд╛рдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХрд░реЗрди."

"рдпрд╛ рд╕рдВрдЧреНрд░рд╣рд╛рдЪрд╛ рд╡рд╛рд░рд╕рд╛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдХрд╕рд╛ рджрд┐рд╕рддреЛ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ:"

"рдЗрдВрдЯрд░рдлреЗрд╕ рд╣рд┐рд░рд╡реЗ рдЖрд╣реЗрдд."

"рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдЬрд╛рдВрднрд│рд╛ рдЖрд╣реЗрдд."

"рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рд▓рд╛рд▓ рдЖрд╣реЗрдд."

"рдареЛрд╕ рд░реЗрд╖рд╛ рд╡рд╛рд░рд╕рд╛ рджрд░реНрд╢рд╡рддрд╛рдд рдЖрдгрд┐ рдбреЕрд╢ рд░реЗрд╖рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛рдд."

"рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрд╣реЗ. рдЕреЕрд░реЗрд▓рд┐рд╕реНрдЯрдордзреНрдпреЗ , рдШрдЯрдХ рдПрдХрд╛ рд╕рд╛рдзреНрдпрд╛ рдЕреЕрд░реЗрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд."

"рдЕтАНреЕрд░реЗрд╡рд░ рдпрд╛ рд╕рдВрдЧреНрд░рд╣рд╛рдЪрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдлрд╛рдпрджрд╛ рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдЪреА рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛, рдореНрд╣рдгрдЬреЗ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рддреНрдпрд╛рдЪреА рд▓рд╛рдВрдмреА рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛."

"рдЬрд░ рдЕтАНреЕрд░реЗрдЪреА рдЬрд╛рдЧрд╛ рд╕рдВрдкрд▓реА, рддрд░ рджреБрд╕рд░рд╛ рдореЛрдард╛ рдЕтАНреЕрд░реЗ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓ рдЖрдгрд┐ рдкрд╣рд┐рд▓реНрдпрд╛ рдЕреЕрд░реЗрдордзреАрд▓ рд╕рд░реНрд╡ рдШрдЯрдХ рддреНрдпрд╛рд╡рд░ рдХреЙрдкреА рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рдирдВрддрд░ рджреБрд╕рд░рд╛ рдЕтАНреЕрд░реЗ рдкрд╣рд┐рд▓реНрдпрд╛рдЪреА рдЬрд╛рдЧрд╛ рдШреЗрдИрд▓ рдЖрдгрд┐ рдкрд╣рд┐рд▓рд╛ рдЯрд╛рдХреВрди рджрд┐рд▓рд╛ рдЬрд╛рдИрд▓ (рддреЗ рдЕрд╕реЗрд▓ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд▒реНрдпрд╛рдВрдиреА рдирд╖реНрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ)."

"рдЕтАНреЕрд░реЗ рдХрд┐рддреА рдореЛрдард╛ рд╣реЛрддреЛ?"

"рдирд╡реАрди рдЕреЕрд░реЗрдЪреА рд▓рд╛рдВрдмреА (3*n)/2+1 рдореНрд╣рдгреВрди рдореЛрдЬрд▓реА рдЬрд╛рддреЗ, рдЬреЗрдереЗ n рд╣реА рдЬреБрдиреНрдпрд╛ рдЕреЕрд░реЗрдЪреА рд▓рд╛рдВрдмреА рдЕрд╕рддреЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЬрд░ рдЬреБрдирд╛ рдЕреЕрд░реЗ 100 рдШрдЯрдХ рд▓рд╛рдВрдм рдЕрд╕реЗрд▓, рддрд░ рдирд╡реАрди рдЕреЕрд░реЗ 300/2+1 рдЕрд╕реЗрд▓ = резрелрез."

"рдЕреЕрд░реЗрд▓рд┐рд╕реНрдЯрдЪреНрдпрд╛ рдордзреНрдпрднрд╛рдЧреА рдПрдХ рдШрдЯрдХ рдЬреЛрдбрддрд╛рдирд╛, рдирд╡реАрди рдШрдЯрдХ рдЬрд┐рдереЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓ рддреНрдпрд╛рдЪреНрдпрд╛ рдЙрдЬрд╡реАрдХрдбреЗ рд╕рд░реНрд╡ рдШрдЯрдХ рдЙрдЬрд╡реАрдХрдбреЗ 1 рд╕реНрдерд╛рди рдХреЙрдкреА рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░ рд░рд┐рдХреНрдд рд╕реЗрд▓рдордзреНрдпреЗ рдирд╡реАрди рдШрдЯрдХ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ."

"рдордзреНрдпрднрд╛рдЧреА рдПрдХ рдШрдЯрдХ рдХрд╛рдврддрд╛рдирд╛, рддреНрдпрд╛ рдШрдЯрдХрд╛рдЪреНрдпрд╛ рдЙрдЬрд╡реАрдХрдбреАрд▓ рд╕рд░реНрд╡ рдШрдЯрдХ рдбрд╛рд╡реАрдХрдбреЗ 1 рд╕реНрдерд╛рди рдХреЙрдкреА рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд."

"рддреБрдореНрд╣реА рдЕрд╕реЗ рдореНрд╣рдгрдд рдЖрд╣рд╛рдд рдХреА рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рддреНрдпрд╛рдд рдШрдЯрдХ рдЬреЛрдбрддрд╛ рддреЗрд╡реНрд╣рд╛ рдЕреЕрд░реЗрд▓рд┐рд╕реНрдЯ рд╕реНрд╡рддрдГрд▓рд╛ рд▓рд╛рдВрдм рдХрд░рддреЗ рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрддрд╛ рддреЗрд╡реНрд╣рд╛ рддреА рд╕реНрд╡рддрдГрд▓рд╛ рд▓рд╣рд╛рди рдХрд░рддреЗ?"

"рдирд╛рд╣реА, ArrayList рдордзреАрд▓ рдЕреЕрд░реЗ рдХрдзреАрд╣реА рд╕реНрд╡рддрдГрд╣реВрди рд▓рд╣рд╛рди рд╣реЛрдд рдирд╛рд╣реА; рддрдерд╛рдкрд┐, рддреБрдореНрд╣реА ArrayList рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдЕреЕрд░реЗрд▓рд╛ trimToSize () рдореЗрдердбрд▓рд╛ рдХреЙрд▓ рдХрд░реВрди рд╕рд░реНрд╡рд╛рдд рд▓рд╣рд╛рди рдЖрдХрд╛рд░рд╛рдд рдХрдореА рдХрд░рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбреВ рд╢рдХрддрд╛."

"рдЖрдгрд┐, рдирдХреНрдХреАрдЪ, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ LinkedList рдмрджреНрджрд▓ рд╕рд╛рдВрдЧреЗрди."

"рддреНрдпрд╛рдЪрд╛ рд╡рд╛рд░рд╕рд╛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдХрд╕рд╛ рджрд┐рд╕рддреЛ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ:"

"рдЗрдВрдЯрд░рдлреЗрд╕ рд╣рд┐рд░рд╡реЗ рдЖрд╣реЗрдд."

"рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдЬрд╛рдВрднрд│рд╛ рдЖрд╣реЗрдд."

"рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рд▓рд╛рд▓ рдЖрд╣реЗрдд."

"рдареЛрд╕ рд░реЗрд╖рд╛ рд╡рд╛рд░рд╕рд╛ рджрд░реНрд╢рд╡рддрд╛рдд рдЖрдгрд┐ рдбреЕрд╢ рд░реЗрд╖рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛рдд."

"рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА, LinkedList рдШрдЯрдХрд╛рдВрдирд╛ рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реА рд╕реВрдЪреА рдореНрд╣рдгреВрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ."

"рдореА рддреЗ рдиреЗрд╣рдореА рдРрдХрддреЛ, рдкрдг рддреЗ рдХрд╛рдп рдЖрд╣реЗ рддреЗ рд╕рд╛рдВрдЧреВ рд╢рдХрд╛рд▓?"

"рдирдХреНрдХреА. "рд╣реЗ рд╕реЛрдкреЗ рдЖрд╣реЗ."

"рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рдШрдЯрдХ рдЕрд╕рддрд╛рдд рдЬреЗ рдЕ) рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддрд╛рдд рдЖрдгрд┐ рдм) рдкреБрдвреАрд▓ рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рдШрдЯрдХрд╛рдВрдЪреЗ рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддрд╛рдд."

" рдЕрд╢рд╛ рдШрдЯрдХрд╛рдЪрд╛ рд╡рд░реНрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛рд╕ рддреЛ рдХрд╕рд╛ рджрд┐рд╕реЗрд▓:"

рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрдгрди
class LinkedListElement
{
String data;
LinkedListElement next;
LinkedListElement previous;
}
рдбреЗрдЯрд╛ рдлреАрд▓реНрдб рдШрдЯрдХрд╛рдЪреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп рд╕рдВрдЪрдпрд┐рдд рдХрд░рддреЗ .
рдкреБрдвреАрд▓ рдлреАрд▓реНрдб рд╕реВрдЪреАрддреАрд▓ рдкреБрдвреАрд▓ рдШрдЯрдХрд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ . рдорд╛рдЧреАрд▓ рдлреАрд▓реНрдб рд╕реВрдЪреАрдордзреАрд▓ рдорд╛рдЧреАрд▓
рдШрдЯрдХрд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ .

"рдЖрдгрд┐ рдЬрд░ рдЖрдкрдг рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░рдЪреА рдШреЛрд╖рдгрд╛ рд╡рд╛рдкрд░рддреЛ, рддрд░ рддреЗ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕реЗрд▓:"

рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рдгреЗрд╕рд╣ рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреА рдШрдЯрдХрд╛рд╕рд╛рдареА рд╡рд░реНрдЧ
class LinkedListElement<T>
{
 T data;
 LinkedListElement<T> next;
 LinkedListElement<T> previous;
}

"рдЕрд░реНрде рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ."

"рд╣реЗ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдЪрд▓рд╛ рдХреЛрдб рд▓рд┐рд╣реВ рдпрд╛ рдЬреЗрдереЗ рдЖрдореНрд╣реА рджреБрдкреНрдкрдЯ-рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ 10 рдШрдЯрдХ рдЬреЛрдбреВ:"

рдЙрджрд╛рд╣рд░рдг
public static void main(String[] args)
{
 LinkedListElement<Integer> tail; // The tail (very last element) of the list

 for(int i = 0; i < 10; i++)
 {
  LinkedListElement<Integer> element = new LinkedListElement<Integer>();
  element.data = i;

  if (tail == null) // If the tail doesn't exist, then make our element the last element
  {
   tail = element;
  }
  else // if there is a tail, add the element
  {
   tail.next = element; // Set the next field on the tail element
   element.previous = tail; // Add a reference to the tail to the new element
   tail = element; // Make the new element the tail
  }
 }
}

"рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╕реВрдЪреАрдордзреНрдпреЗ 10 рдШрдЯрдХ рдЖрд╣реЗрдд. рдордзреНрдпрднрд╛рдЧреА рдПрдХ рдШрдЯрдХ рдХрд╕рд╛ рдШрд╛рд▓рд╛рдпрдЪрд╛ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ:"

рд╕реВрдЪреА рдЗрдВрдЯрд░рдлреЗрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА - 3

"рдмрджрд▓рд▓реЗрд▓реЗ рджреБрд╡реЗ рдЪрдордХрджрд╛рд░ рд▓рд╛рд▓ рд░рдВрдЧрд╛рдд рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд . рддреЗ рдЖрддрд╛ рдирд╡реАрди рдШрдЯрдХрд╛рдХрдбреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд░рддрд╛рдд."

"рдирд╡реАрди рд▓рд┐рдВрдХреНрд╕ рдЪрдордХрджрд╛рд░ рдЬрд╛рдВрднрд│реНрдпрд╛ рд░рдВрдЧрд╛рдд рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд . рддреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рд╢реЗрдЬрд╛рд▒реНрдпрд╛рдВрд╕рд╛рдареА рдирд╡реАрди рдШрдЯрдХрд╛рдВрдЪреЗ рджреБрд╡реЗ рдЖрд╣реЗрдд."

"рдЖрдгрд┐ рдЖрддрд╛ рдХреЛрдб рдореНрд╣рдгреВрди:"

рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдЪреНрдпрд╛ рдордзреНрдпрднрд╛рдЧреА рдПрдХ рдШрдЯрдХ рдШрд╛рд▓рд╛
// This field stores the element that is the head of the list
LinkedListElement<Integer> head = тАж

// Get the 4th element (counting from zero)
LinkedListElement<Integer> element4 = head.next.next.next.next;
// Get the 5th element
LinkedListElement<Integer> element5 = element4.next;

// Create the new element that we will insert
LinkedListElement<Integer> newElement = new LinkedListElement<Integer>();
newElement.data = -18;

// Replace the references in the element on the left
newElement.previous = element4;
element4.next = newElement;

// Replace the references in the element on the right
newElement.next = element5;
element5.previous = newElement;

"рдзрдиреНрдпрд╡рд╛рдж, рдПрд▓реА. рдореА рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдпрд╛рджреНрдпрд╛рдВрдмрджреНрджрд▓ рдмрд░реНтАНрдпрд╛рдЪ рдирд╡реАрди рдЧреЛрд╖реНрдЯреА рд╢рд┐рдХрд▓реЛ."