Мой учитель сделал эту функцию, но я не понимаю, какая от этого польза - PullRequest
0 голосов
/ 05 января 2020

Я практикую связанные списки. Наш учитель показал нам стандартные функции для создания новых узлов и списков.

В следующей функции я не понимаю, для чего нужна дополнительная функция infoGreater.

Вот как построена функция infoGreater:

int infoGreater (TInfo info1, TInfo info2) {
    return  info1 > info2;
}

Я имею в виду, что это за возврат. Я не понимаю Что это возвращает? И почему это говорит info1> info2? Что это такое

Это основная функция:

TList listInsert(TList list, TInfo info) {
    TNode *node = nodeCreate(info);
    assert (node != NULL);
    TNode *prec = NULL, *succ = list;
    while (succ != NULL && infoGreater(info, succ->info)) {
        prec = succ;
        succ = succ->link;
    }
    node->link = succ;
    if (prec == NULL) 
        list = node;
    else
        prec->link = node;
    return list;
}

Главное сомнение в том, что делает return info1>info2;? И что это возвращает? Почему это необходимо в основной функции listInsert?

1 Ответ

1 голос
/ 05 января 2020

Функция infoGreater тривиальна. Это немного сбивает с толку, поскольку некоторые неявные приведения типов отсутствуют. Тип возврата функции int, что довольно типично для хранения логического значения.

функция возвращает логическое значение. 1 (или теоретически любой другой ненулевой), если info1 больше или 0 в противном случае.

код эквивалентен:

int infoGreater (TInfo info1, TInfo info2) {
    if (info1 > info2)
        return 1;
    else
        return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...