双向链表与C / C ++中的多链表

双链表和多链表有什么区别? 在C / C ++程序的帮助下解释我会更好。

定义

多链表是链表,其中每个节点可以包含指向链表的多个节点的指针。

双链表是多链表的特例。 它有两种特殊之处:

  1. 每个节点只有2个指针。

  2. 指针是彼此完全相反的。

示例

多链表:

在此处输入图像描述

双重链表:

在此处输入图像描述

代表

多链表:

typedef struct node { int data; vector pointers; }Node; 

双链表:

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

双向链表以前向和反向顺序链接元素。
多链表以几种不同的方式链接元素,这些方式彼此无关。

双链表是每个节点有2个指针的列表,1表示它之前的节点,另一个节点指向该节点之后的节点。
在多链表中,将有几个指针,每个指针根据某些标准对节点进行排序。
区别在于,在双向链表中,我们可以在任一方向上遍历列表,但是它被命令形成1个列表,即one ordering of nodes 。 在多链路列表中,可以有multiple ordering of nodes 。 每个指针可以根据不同的标准对列表进行排序,并在使用该指针遍历列表时形成不同的列表。

阅读本文以了解如何使用多个链接在多链接列表中根据用于遍历列表的指针获取不同的排序。

双向链表:双向链表中的每个节点都保存到前一个节点(第一个节点的excpet)和下一个节点(最后一个节点除外)的链接。

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

多链表:多链表的节点包含各种链接,组织元素集合或维护一组元素的多个顺序等。

 // 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; }