Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двусвязный список. Как определить закольцованность? 
:(
    Опции темы
mes
Дата 15.4.2009, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(inside_pointer @  15.4.2009,  10:44 Найти цитируемый пост)
    for (startsave = cur = head;
         cur == cur->next->prev
             && cur != startsave;
         cur = cur->next)

а где проверка, что cur->next не ноль ?!


--------------------
PM MAIL WWW   Вверх
inside_pointer
Дата 15.4.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 9.3.2008

Репутация: 5
Всего: 12



я в процессе ещё smile
PM MAIL   Вверх
Dov
Дата 15.4.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Код
struct node
{
    int        data;
    node   *next;
    node   *prev;
};

struct List
{
    node   *head;
    List()
    {
        head = NULL;
    }
    void    inputList();
    void    printList();
};

int main()
{
     setlocale(LC_ALL, ".1251");

    List    list;

    list.inputList();
    list.printList();

    return 0;
}

void List::inputList()
{
    node   *cur;
    int        data;

    head       = new( node );     
    cur        = head;
    head->prev = NULL; 
    head->next = NULL;

    cout << "введите элементы списка(0 - завершение ввода): \n";
    cin  >> data;

    while( data != 0 )
    {
        cur->next       = new ( node );
        cur->next->prev = cur;
        cur             = cur->next;
        cur->next       = NULL;
        cur->data       = data;

        cin >> data;
    }

    if( head->next != NULL )
    {
        head->next->prev = cur;

        // закомментируйте одну из следующих строчек:        
        cur->next        = head->next;           // закольцуем список        
//        cur->next        = NULL;                 // не будем закольцовывать       
    }
}

void List::printList()
{
    node  * cur;

    cout << "список: ";
    if( head->next != NULL )
    {
        cout << head->next->data << " ";
        cur = head->next->next;
        while( cur != head->next )
        {
            cout << cur->data << " ";
            cur = cur->next;

            // проверяем: NULL - не закольцован
            if( cur == NULL )
            {
                cout << " не";
                break;
            }
        }
        cout << " закольцован " << endl;
    }
    else
        cout << "пуст... \n";
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
mes
Дата 15.4.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Dov @  15.4.2009,  12:05 Найти цитируемый пост)
    void    inputList();
    void    printList();

а зачем их делать членами класса ?



--------------------
PM MAIL WWW   Вверх
Dov
Дата 15.4.2009, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Цитата(mes @  15.4.2009,  13:13 Найти цитируемый пост)
а зачем их делать членами класса ?


mes, вопрос, ведь, не в этом. Не хочешь - не делай. Это просто иллюстрация, примерчик, так сказать. Показано, как проверить и всё. Дальше, пусть человек сам думает.

Добавлено через 3 минуты и 19 секунд
там нужна ещё проверка "в обратную сторону", аналогичная этой..


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
zim22
Дата 15.4.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



 smile 
Цитата(Dov @  15.4.2009,  13:05 Найти цитируемый пост)
setlocale(LC_ALL, ".1251");

Я так понимаю, это чтобы в консоли русский текст корректно отображался.
Однако я встречал ещё два аналогичных варианта:
1) setlocale(LC_ALL, "");
2) setlocale(LC_ALL, "Russian");

Интересно, сколько их всего... smile


Это сообщение отредактировал(а) zim22 - 15.4.2009, 13:47


--------------------
PM MAIL   Вверх
mes
Дата 15.4.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Dov @  15.4.2009,  12:29 Найти цитируемый пост)
Не хочешь - не делай. Это просто иллюстрация, примерчик, так сказать. Показано, как проверить и всё. Дальше, пусть человек сам думает.

не хочу.. просто испугало.. представил, что эти строчки воспримут как руководство к действию.  smile 


--------------------
PM MAIL WWW   Вверх
Dov
Дата 15.4.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Цитата(mes @  15.4.2009,  14:02 Найти цитируемый пост)
не хочу.. просто испугало.. представил, что эти строчки воспримут как руководство к действию. 

гы-гы....
mes, зачем же о людях так думать?  smile 

Цитата(zim22 @  15.4.2009,  13:46 Найти цитируемый пост)
Интересно, сколько их всего...

zim22, не знаю.  На моём компе если так не сделать, то будет на иврите выводить...  smile 


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
mes
Дата 15.4.2009, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Dov @  15.4.2009,  13:08 Найти цитируемый пост)
mes, зачем же о людях так думать?  smile 

да после соседней темы с  **(char *)&string еще и не такие ужасы привидятся..   smile  smile 



Это сообщение отредактировал(а) mes - 15.4.2009, 14:17


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 15.4.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(mes @  15.4.2009,  14:02 Найти цитируемый пост)
представил, что эти строчки воспримут как руководство к действию.  smile 

 smile 
Цитата(mes @  15.4.2009,  14:17 Найти цитируемый пост)
**(char *)&string

Это что? smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 15.4.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(andrew_121 @  15.4.2009,  14:58 Найти цитируемый пост)
Это что? 

извращение в чистом виде smile


--------------------
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.