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

Сравнить два поля узла - C++

Восстановить пароль Регистрация
 
Лев Борисов
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 99
01.10.2013, 01:16     Сравнить два поля узла #1
Имеется двусвязный список фишек домино.
В нём два поля: левое и правое числа фишки домино.
Нужно пробежать такой цикл, чтобы выяснить соответствует ли правилам игры цепочка: т.е. равно ли правое поле текущей фишки (second_f) левому полю следующей фишки (first_f).

Пробовал этот, что-то не так

C++
1
2
3
4
5
6
7
8
9
10
11
while(flow_number)
    {
        buf = flow_number;
        while(buf = buf -> next)
        {
            if (buf -> first_f != flow_number -> second_f)
                cout << "\n\tИмеется несоответсвие правилам!";
            else
                cout << "\n\tЦепочка составлена верно!";
        }
    }
здесь flow_number - текущая фишка. Подумал, что можно только этим обойтись. Или нет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 01:16     Сравнить два поля узла
Посмотрите здесь:

C++ Сравнить два введённых слова
Сравнить два любых файла на С++ C++
Как сравнить два массива C++
C++ Как сравнить два символа?
Сравнить два кода с условием C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
01.10.2013, 01:22     Сравнить два поля узла #2
Вообще это похоже на правду... а работает-то правильно? Проверяли?
Лев Борисов
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 99
01.10.2013, 01:25  [ТС]     Сравнить два поля узла #3
Подправил, даже при правильной цепочке выдаёт, что неверно, что-то не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while(true)
    {
        buf = head;
        while(buf = buf -> next)
        {
            if (buf -> first_f != flow_number -> second_f)
            {
                cout << "\n\tИмеется несоответсвие правилам!";
                break;
            }
            else
            {
                cout << "\n\tЦепочка составлена верно!";
                break;
            }
        }
        break;
    }
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
01.10.2013, 01:31     Сравнить два поля узла #4
А что такое flow_number?

Добавлено через 5 минут
Хотя нет, что-то я ступил, ночь сыграла роль... советую ещё теории почитать, к примеру тут (есть примеры на c++, посмотрите, как автор пробегается по списку)
Лев Борисов
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 99
01.10.2013, 02:39  [ТС]     Сравнить два поля узла #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
buf = head;
    flow_number = head;
    do
    {
        buf = buf -> next;
        if(flow_number -> second_f != buf -> first_f)
        {
            cout << "\n\tИмеется несоответсвие правилам!" << endl;
            break;
        }
        flow_number=flow_number->next;
        cout << "\n\tПравильно!" << endl;
    }
    while (buf == NULL);
И так не пашет, правильные одобряет. И неправильные одобряет!

Аааа..! Помогите!

Добавлено через 18 минут
Спасибо, ребят! Я разобрался!
Yandex
Объявления
01.10.2013, 02:39     Сравнить два поля узла
Ответ Создать тему
Опции темы

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