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 № 1Definicja:
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:
Każdy węzeł ma tylko 2 wskaźniki.
Wskaźniki są dokładnie odwrotnymi względem siebie.
Przykład:
Lista z wieloma linkami:
Lista podwójnie połączona:
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;
}