Дек ( двустороняя очередь) - C#
Формулировка задачи:
Ребята есть список заданий, помоги с реализацией какой-нибудь одной.Подтолкните так сказать.
1.создать дек и выбрать 5 элементов начиная с первого(левого конца).вывести.
2. Создать дек и выбрать 3 элемента начиная с последнего(правого конца) с шагом 3.показать оставшийся дек и выбранные элементы.
Дело все в том что не могу найти ни одной статьи про дек.не знаю как задать. Но смысл задачи№1 как я понимаю таков: создаем дек , командой push_front положим 10 элементов в дек. далее командой pop_front вытаскиваем 5 элементов в ...(куда?).... и показываем дек который остался и то куда мы вытащили???
Направьте в правильную колею.
Решение задачи: «Дек ( двустороняя очередь)»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; class Deq<T> { T[] array; public Deq() { array = new T[0]; } public int Count { get { return array.Length; } } public bool Empty { get { return array.Length > 0; } } public void PushBack(T item) { Array.Resize(ref array, array.Length + 1); array[array.Length - 1] = item; } public void PushFront(T item) { Array.Resize(ref array, array.Length + 1); for (int i = array.Length - 1; i > 0; i--) array[i] = array[i - 1]; array[0] = item; } public T PopBack() { T item = array[array.Length - 1]; Array.Resize(ref array, array.Length - 1); return item; } public T PopFront() { T item = array[0]; for (int i = 0; i < array.Length - 1; i++) array[i] = array[i + 1]; Array.Resize(ref array, array.Length - 1); return item; } public T Front { get { return array[0]; } } public T Back { get { return array[array.Length - 1]; } } } class Program { static void Main(string[] args) { Deq<int> deq = new Deq<int>(); Deq<int> d = new Deq<int>(); for (int i = 0; i < 10; i++) { deq.PushBack(i); deq.PushFront(i); d.PushBack(i); d.PushFront(i); } Console.WriteLine(deq.Count); while (deq.Empty) Console.Write(deq.PopFront() + " "); Console.WriteLine(); Console.WriteLine(new string('-', 10)); while (d.Empty) Console.Write(d.PopBack() + " "); Console.ReadKey(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д