多少的作用是什么?
我理解的是,在单链表或者双向链表中,前驱和后继的概念是相对于某个节点而言的。比如对于一个节点a,那么他的前驱就是a的直接前驱节点b(a->b = b->a);而他的后继就是a的后继节点c(a->c = c->a)。
对于任意节点x,总是存在唯一一个节点y,使得x->y为真且y->x为真,我们称这样的节点y为x的前驱或后继——这里要求y必须存在于x的直接前面或直接后面。所以一个节点的“有多少个”的前驱或者后继,就表明了它在前或者在后所能到达的数量有限性。
在单链表中,如果某节点有几个前驱,就意味着它可以向前找到几个“和它自身相连”的节点。同理,几个后继也就意味可以向后找到几个“和它自身相连”的节点(其实这个“几个”是没有意义的,因为前后都是有限的,不可能无限循环)。
当然,对于双向链表,情况就比较复杂了。因为一个节点可能有无数的“和他本身相连”的节点,也就意味着该结点的所有前驱和后缀之和可以是无数个。然而,一个节点永远只有一个前驱和一个后继,所以不管有多少个“与他本身相连”的节点,总有个数量限制。因此“有多少个”仍然有意义。
以上是针对单链表、双向链表的节点的简单介绍。实际上,这些概念的节点指的是列表中的每个元素,包括数组、字典等数据结构中,每一个可访问的元素。也就是说,如果一个类型实现了这两种指针的类型系统,并且这种类型所有的元素都可以通过这两个指针进行前后排序,我们就说这个类型实现了“多少”这个特性,否则就不满足。 综上所诉,“多少个”的特性取决于指向该类型的指针所具备的性质。