Nabeel Munir Ответов: 1

Помощь, необходимая для понимания связанного списка в C++


У меня есть фрагмент кода связанного списка на языке c++- Я хочу это понять. Я действительно понимаю большую часть этого. Но, некоторые детали я не получаю. Пожалуйста, объясните мне, что H->Data делает в этом коде и что p->Next делает в этом коде. А также то, что делают в этом случае *H и *p. Насколько я знаю, указатели содержат адреса памяти других переменных.

Что я уже пробовал:

#include <stdio.h>
#include <iostream>
#include <time.h>
using namespace std;

struct List
{	int Data;
	List* Next;
};

int main()
{
    List *H, *p;
    srand(time(0));
    cout << "Initial data: ";
    H = new List; p = H;
    H->Data = rand() % 99 + 1;
    cout << H->Data << " ";
    for (int i=0; i<19; i++)
    {
        p->Next = new List;
        p = p->Next;
        p->Data = rand() % 99 + 1;
        cout << p->Data << " ";
    }
    p->Next = NULL;
    
    cout << "\nData of the list: ";
    p = H;
    while (p != NULL)
    {
        cout << p->Data << " ";
        p = p->Next;
    }

    cout << endl;
    system("pause");
    return 0;
}

KarstenK

Google для некоторых учебников и примеров. Вы найдете очень много !!!

1 Ответов

Рейтинг:
9

Rick York

A linked list is what the name implies : a list of objects that are linked together by pointers. In this case, the object is an integer, Data, and the pointer to the next item in the list is Next. The variable H is a pointer to the head of the list. The variable p is a pointer to an item in the list. In the for loop it points to the last item added. In the while loop it points to the current item in the iteration. Items are added to the list by creating a new object and assigning the Next pointer of the last item in the list to this new object. In the while loop you can see how list is chained together through the Next pointer. The pointer p steps through the list, one item at a time, until it encounters a null Next pointer which indicates the last item in the list.

Возможно, вы захотите прочитать о связанных списках немного подробнее : Связанный список - Википедия[^]