Двусторонняя очередь (ДЕК) - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста реализовать дек : Нарисовал uml диаграмму , но как сделать не знаю , должно быть 3 класса , все в джинерике и в ООП стиле ( Помогите )))

Решение задачи: «Двусторонняя очередь (ДЕК)»

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);
    }
}

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


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

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

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