Печать связанных списков - PullRequest
       15

Печать связанных списков

0 голосов
/ 28 сентября 2019

Я пытаюсь напечатать переменные, которые назначены в узлах, но он печатает случайные данные.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

struct Node{
    int data;
    struct Node * next;
};

int main()
{
    struct Node* head = NULL;
    struct Node* second = NULL;
    struct Node* third = NULL;

    head = (struct Node*)malloc(sizeof(struct Node));
    second = (struct Node*)malloc(sizeof(struct Node));
    third = (struct Node*)malloc(sizeof(struct Node));

    head -> data = 1;
    head -> next = second;

    second -> data = 2;
    second -> next = third;

    third-> data = 3;
    third -> next = NULL;


    printf("%d",head);
    printf("\n%d",second); //problem in this part
    printf("\n%d",third);




    return 0;

Я ожидаю вывод, подобный 1,2,3, которые являются переменными, которые я назначил.

1 Ответ

1 голос
/ 28 сентября 2019

Вы печатаете указатель, то есть адрес этих структур.если вы хотите распечатать данные, вы должны напечатать поле данных:

printf("%d", head->data);

также, если вы хотите распечатать все элементы односвязного списка, вы можете сделать это:

struct Node* p = head;
while (p != NULL)
{
  printf("%d\n", p->data);
  p = p->next;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...