Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2013, 07:06   #1
Pikovaya_dama
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 14
По умолчанию Работа с деком через массив

Помогите пожалуйста написать программу, которая на основе массива реализует работу с деком. Я полный ноль в программировании, потихоньку изучаю, но эту задачку мне надо разобрать как можно быстрее. Заранее благодарен!
Pikovaya_dama вне форума Ответить с цитированием
Старый 28.11.2013, 05:12   #2
Pikovaya_dama
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 14
По умолчанию

Что, никто не в теме?!
Pikovaya_dama вне форума Ответить с цитированием
Старый 28.11.2013, 09:13   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Тут как раз все в темУ, кроме Вас. Подобные Вашему запросы стоит помещать в разделе "помощь студентам" или даже во фрилансе.
Чтобы получить помощь по какому-то _вопросу_ , тут можно разместить тему, но не по задачке из Вашего образовательного учреждения, которую Вам "припёрло" сделать.

Выкладывайте как минимум код (и/или весь проект архивом), который Вы написали, изучив теорию или другие источники информации и указывайте конкретные вопросы - мол ожидаю получить то и то, а получаю другое, или здесь ошибка компиляции (текст ошибки и кусок кода с помеченной строкой, где ошибка) и т.д.

И уж тем более не стоит поднимать тему флудопостами, если кто-то захочет - поможет, а на нет - и суда нет (Вы не во фриланс - разделе).

Теперь.
Дек - динамическая очередь элементов с организацией доступа по принципу "первый вошёл первый вышел" (FIFO).
Для работы Вам потребуется класс/структура для элемента, содержащий минимум 2 поля - поле данных и поле для указания на следующий элемент (ссылка или непосредственно поле типа элемента). И необходим класс (для сишарпа практически неактуально, но может быть и просто набор подпрограмм), который будет инкапсулировать дек. В нём будет как раз массив для хранения элементов и набор методов, которые будут управлять самим массивом и его элементами, для того, чтобы обеспечить работу дека.
Методы обычно такие:
Код:
public class Deque
{
    private Element[] _elements; // массив элементов
    private int _capacity; // вместимость

    public Deque(int capacity) // конструктор
    {
        _capacity = capacity;
        _elements = new Element[capacity]; 
    } 
    public void Put(Element el){} // положить
    public Element Take(){} // извлечь
    public Element Peek(){} // прочитать доступный к извлечению, но не извлекать
    public void Clear(){} // очистить дек полностью 
    public int Count{get{return _elements.Length;}} // актуальное кол-во элементов
    public int Capacity{get{return _capacity;}} // вместимость, можно и разрешить менять, но не тривиально
    public bool IsEmpty{get{return Count == 0;}} // проверка на пустоту
    public bool IsFull{get{return Count == Capacity;}} // проверка на заполненность, когда уже нет места
}
Вам нужно только реализовать Clear, Put и Take (Peek по аналогии с Take, только не убирать из массива).
Как их написать - зависит от того, как Вы усвоите теорию.
Также надо будет написать тестирующий код, чтобы проверить работу дека - заполнить, извлекать, класть, чистить и показывать всё пользователю, может, Вы захотите на форму или в консоль выводить, кто знает, а может вообще в файл.

Последний раз редактировалось phomm; 28.11.2013 в 09:21.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив через процедуру lika2301 Помощь студентам 1 04.06.2013 11:36
надо сделать дек через массив и через список. CHUCKe Помощь студентам 4 20.11.2010 17:23
задание через массив по С++... AvengerAndrew Помощь студентам 8 23.10.2010 13:12