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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2011, 21:31   #1
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию Задача на класс с цепными списками строк

текст:
Составить описание класса для работы с цепными списками строк (строки произвольной длины) с операциями:
- включения в список,
- удаления из списка элемента с заданным значением данного,
- удаления всего списка или конца списка, начиная с заданного элемента.

Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.

Что имется ввтду по названием цепной список строк?
west.by вне форума Ответить с цитированием
Старый 02.07.2011, 21:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Видимо это чтоб запутать студента.
НАверное имеется ввиду что каждый элемент списка должен содержать поля, связующие со следующим и предыдущим элементом - двунаправленный список
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2011, 21:55   #3
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

ok. тогда просмотрите одним глазком(можно и двумя)) )
соответсвует ли этот код поставленному заданию

Код:
struct list
{
    int data;
    list *next;
    list *prev;
}; list *cur=0;
 
 
//Функция добавления элемента в список
AddAfterCur(int elem)
{
    list *tmp;
    tmp=new list;
    if (tmp==0){printf("\nНевозможно выделить память");}
 
    printf("\n\nВведите число ");
    scanf("%i",&elem); printf("\n%i",elem);
 
    tmp->data=elem;
    tmp->next=cur->next;
    tmp->prev=cur->prev;
 
    if(cur==0)    //Добавление первого элемента
    {
        cur->next=tmp;
        cur=tmp;
        cur->prev=cur;
        cur->next=cur;
    }
    if(cur!=0)        //Добавление элементов
    {
        cur->next=tmp;
        cur->next->prev=cur;
        cur=tmp;
        cur->next->prev=cur;
    }
    return 0;
}
 
 
//Функция удаления текущего элемента
DeleteCurrent()
{
    if(cur==NULL)
    {
        printf("\n\nСписок пуст");
        getch();
        return 0;
    }
 
    list *tmp=cur->prev;
    cur->next->prev=tmp;
    cur->prev->next=cur->next;
    delete cur;
    cur=tmp;
    return 0;
}
как реализовать тогда третий подпункт удаления с определенного элемента? и меню в командной строке? это как? введите то и то нажав кнопку и т.п?

Последний раз редактировалось Stilet; 02.07.2011 в 23:01.
west.by вне форума Ответить с цитированием
Старый 02.07.2011, 23:08   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
удаления с определенного элемента?
В цикле проходишь к элементу:
Код:
void del(int i){ 
 list *l=first;
 for(;i>0;i--) l=l->next;
 // Удаляем l перецепляя его концы как в твоей DeleteCurrent()
}
Понятна идея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2011, 23:16   #5
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

НЭт нэ понятно((

и компилятор ругается на определенные моменты

Последний раз редактировалось Stilet; 03.07.2011 в 10:06.
west.by вне форума Ответить с цитированием
Старый 03.07.2011, 10:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какие моменты?
Вот посмотри :http://www.programmersforum.ru/showt...279#post713279
Здесь процедура add(int numpos,int x) как раз использует цикл чтоб доползти до нужного элемента
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2011, 10:49   #7
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

.... мне бы это допилить а не переделывать ...

Последний раз редактировалось west.by; 03.07.2011 в 10:51.
west.by вне форума Ответить с цитированием
Старый 03.07.2011, 11:49   #8
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

код в посте 3 не по вашему заданию:
Цитата:
работы с цепными списками строк (строки произвольной длины)
Цитата:
Код:
struct list
{
    int data;
    list *next;
    list *prev;
}; list *cur=0;
видимо, int надо заменить на char
по реализации третьего пункта:
Цитата:
- удаления всего списка или конца списка, начиная с заданного элемента.
не понятно как задан элемент(номером или значением).
rrrFer вне форума Ответить с цитированием
Старый 03.07.2011, 12:51   #9
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

101% что номером!!! ибо значение-это строки произвольной длины с произвольными значениями*(((
west.by вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача exel 10 класс JDI Microsoft Office Excel 1 24.04.2011 17:31
Задача по обработке строк Malyshka Помощь студентам 11 18.12.2010 00:48
Задача на обработку строк max1m9 Microsoft Office Excel 6 17.12.2009 10:19
задача на массив строк hijack Помощь студентам 0 26.11.2007 23:10
С++ - задача со списками Галечка Помощь студентам 4 08.11.2007 23:05