Как эта функция печати перемещает указатель на следующий элемент в связанном списке? - PullRequest
0 голосов
/ 22 октября 2011
struct ll {
    int num;
    struct ll *next;
};

struct ll *head;

main() {
    /* code to assign head pointer some memory */

    print(head->next);
}

Я прочитал, что функция print() в приведенном выше коде перемещает указатель на следующий элемент.Как это перемещает указатель головы к следующему элементу?

Ответы [ 2 ]

2 голосов
/ 22 октября 2011

print() должно выглядеть примерно так:

print(struct ll *foo) {
  // code
  head = head->next;
  // other code
}

Обратите внимание, что это плохой код различными способами, но именно так он будет перемещаться head, чтобы указывать на следующий элемент.1006 *

1 голос
/ 22 октября 2011

Ваш head указатель является глобальным, и вы не хотите изменять его, просто просматривая список.Это будет проходить по списку и печатать каждое поле num.

void print(struct ll *node) {
    while (node) {
        printf("%d\n", node->num);
        node = node->next;
    }
}

main() {
    /* code to assign head pointer some memory */
    print(head);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...