Форум программистов, компьютерный форум CyberForum.ru

Полный дек - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
nickson91
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 15
15.12.2009, 18:04     Полный дек #1
Добрый день! мучаюсь с задачей - реализовать тип и функции (инициализация,добавление\извлечение элементов с обеих сторон,проверка на пустоту) для реализации полного дека в связной памяти на чистом Си.
единственное, что удалось узнать у преподавателя это то,что полный дек нужно создавать на основе двусвязного списка. Подскажите пожалуйста материалы и примеры на эту тему. хочется разобраться а не тупо списывать из интернета,а ни одного похожего примера с объяснением пока не нашел
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 18:04     Полный дек
Посмотрите здесь:

дек C++
дек через список C++
Очередь и дек С++ C++
C++ Простой дек
C++ Дек в виде массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 18:29     Полный дек #2
Что именно не понятно??
1 - Что такое дек?
2 - Что такое двусвязный список?
3 - Как оно должно работать?
4 - Как это закодить?
5 - Вообще ничего не понятно!!!
nickson91
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 15
15.12.2009, 18:34  [ТС]     Полный дек #3
3, 4 )
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 20:20     Полный дек #4
3:
пример использования дека юзер - пользователь либо кусок кода (например, майн), дек - дек.
дек: пусто
юзер: добавить слева "раз"
дек: раз
юзер: добавить слева "два"
дек: два раз
юзер: добавить слева "три"
дек: три два раз
юзер: добавить справа "пять"
дек: три два раз пять
юзер: взять слева
дек: два раз пять
юзер взять справа
дек: два раз
юзер: очистить дек
дек: пусто

4:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define TYPE some_user_type_of_data
class Deq
{
public:
    void push_left(TYPE data);
    void push_right(TYPE data);
    void pop_left(TYPE* data);
    void pop_right(TYPE* data);
    void clear();
    bool is_empty();
private:
      Node* head;//left
      Node* tail;//right
/* методы необходимые для организации двусвязного списка */
};
так же понадобиться
C++
1
2
3
4
5
6
struct Node
{
TYPE data;
Node* prior;
Node* next;
};
в общих чертах так..
nickson91
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 15
15.12.2009, 21:33  [ТС]     Полный дек #5
Vladimir, спасибо, но нужен код на C а не С++ к сожалению
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.12.2009, 23:12     Полный дек #6
использовать вместо класса структуру разве нельзя??
nickson91
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 15
18.12.2009, 11:26  [ТС]     Полный дек #7
С этой задачей разобрался,написал на С. Теперь надо то же самое написать на С++,используя класс. Как я понимаю, нужно в тексте программы на С поменять printf и scanf на cout/cin, malloc и free на new/delete , ну и использовать собственно класс,описанный выше. Но еще было сказано использовать копирующий конструктор и перегрузить все операции. Подскажите, как это сделать применимо к данной конкретной программе?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2009, 12:35     Полный дек
Еще ссылки по теме:

Дек символов C++
Дек,заполение с конца C++
C++ Дек-шаблон

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
18.12.2009, 12:35     Полный дек #8
C++
1
2
3
4
5
6
class MyClass{
        private:
                  Sometype info;
        public:
                  MyClass(const MyClass &M):info(M.info){} // копирующий конструктор
};
и не забудь о
C++
1
2
#include <iostream> 
using namespace std;
для cout и cin.
Yandex
Объявления
18.12.2009, 12:35     Полный дек
Ответ Создать тему
Опции темы

Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru