a .一定连续的b .一定不连续的c .一定不连续的d .部分连续,部分不连续
在链式存储器设计的情况下,各不同节点的存储器空间可以不连续,但节点内的存储器单元地址必须连续。
类型结构节点整数值; //value存储节点值域,缺省情况下为int型结构节点* next; //指向后续节点的指针}LNode; //定义单链接列表的节点类型
上面定义了结构体,包括两个部分,一个是值域,两个是指针域; 每次定义节点时都会生成这两个区域。 下图:
这个value和next域必须紧挨着,将这个节点称为内部。
假定定义了几个不同的节点,并将它们链接为单个链表。
这些节点是蓝色的部分或值区域,箭头区域指向逻辑上链接了指针字段的下一个节点,但是在空间上并不一定是连续的。
例如,第一个节点的起始地址可以是第一个单元,第二个节点可以是第十个单元,第三个节点可以是第100个单元。 也就是说,地址空间不必是连续的,但只要在逻辑上通过指针字段相互链接即可。
那些节点的内部一定是连续的。 如果第一个节点占用两个地址,则如果值域的起始地址为1,则指针域的地址为2。 同样地,如果第二节点的value地址为10,则next域为11。
因此,在进行链式存储器设计的情况下,各个不同的节点被存储在完全不连续的空间中,但在同一节点的内部,无论分为几个区域、2个、3个,内部单元的存储器地址都是连续的。