/ / Lista podwójnie połączona z listą Multi-link w C / C ++ [zamknięta] - c ++, c, struktury danych

Lista podwójnie połączona z listą z wieloma linkami w C / C ++ [zamknięta] - c ++, c, struktury danych

Jaka jest różnica między listą podwójnie powiązaną a listą z wieloma linkami? Lepiej będzie wyjaśnić mi przy pomocy programu C / C ++.

Odpowiedzi:

9 dla odpowiedzi № 1

Definicja:

ZA wiele połączonych list jest połączoną listą, gdzie każdy węzeł może zawierać wskaźniki do więcej niż jednego węzła połączonej listy.

Podwójnie połączone listy są szczególnym przypadkiem list z wieloma linkami. Jest wyjątkowy na dwa sposoby:

  1. Każdy węzeł ma tylko 2 wskaźniki.

  2. Wskaźniki są dokładnie odwrotnymi względem siebie.

Przykład:

Lista z wieloma linkami:

wprowadź opis obrazu tutaj

Lista podwójnie połączona:

wprowadź opis obrazu tutaj

Reprezentacja:

Lista wielu linków:

typedef struct node
{
int data;
vector<struct node *> pointers;
}Node;

Podwójnie połączona lista:

typedef struct node
{
int data;
struct node* prev;
struct node* next;
}Node;

0 dla odpowiedzi nr 2

Podwójnie połączone listy łączą elementy w kolejności do przodu i do tyłu.
Połączona lista łączy elementy na kilka różnych sposobów, którymi są nie związane z każdym innym.


0 dla odpowiedzi № 3

Lista podwójnie połączona to ta, w której każdy węzeł będzie miał 2 wskaźniki, 1 do węzła przed nim i jeszcze jeden wskaźnik do węzła za tym węzłem.
Na liście z wieloma linkami będzie kilka wskaźników, a każdy wskaźnik będzie zamieniał węzły na podstawie pewnych kryteriów.
Różnica polega na tym, Na podwójnie połączonej liście możemy przemierzać listę w dowolnym kierunku, ale jest ona uporządkowana tak, aby utworzyć listę 1, tj. one ordering of nodes. gdzie jak na liście wielu linków może być multiple ordering of nodes. każdy wskaźnik może zamówić listę w oparciu o różne kryteria i utworzyć inną listę, kiedy przechodzisz przez tę listę za pomocą tego wskaźnika.

czytać to aby wiedzieć, w jaki sposób używane są łącza wielokrotne, aby uzyskać różne porządkowanie na liście wielu linków, w oparciu o wskaźnik używany do przechodzenia przez listę.


0 dla odpowiedzi nr 4

Podwójnie połączona lista: Każdy węzeł na podwójnie połączonej liście zawiera łącze do poprzedniego węzła (wykluczenie dla pierwszego węzła) i następnego węzła (z wyjątkiem ostatniego węzła).

// Node in a doubly linked list
struct node
{
unsigned int id;
unsigned int age;
std::string name;
struct node *previous;
struct node *next;
}

Lista wielu łączy: Węzły z wielu połączonych list utrzymują różne łącza, organizują zbiór elementów lub utrzymują wiele rzędów jednego zestawu elementów itp.

// Node in a matrix
struct node
{
unsigned int id;
unsigned int age;
std::string name;
struct node *next_in_row;
struct node *next_in_column;
}

// Node for maintaining multiple order of one set of elements
struct node
{
int id;
unsigned int age;
std::string name;
struct node *next_id_in_order;
struct node *next_age_in_order;
}