Дек ( двустороняя очередь) - 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы