|
|
链表的指针修改必须保持其逻辑结构的次序,否则将违背线性表的特征,尤其是进行插入和删除操作。下面通过双向链表的插入操作来说明,若在如下1图所示的P所指向的结点之前插入一个S所指向的结点,则需要进行指针的修改,修改指针的策略有两种,如下2图和下3图所示,指针的修改次序为1,2,3,4。根据线性表的性质可知,下2图可保证指针修改成功;而下3图中指针修改不成功,主要原因是其首先将P的前驱指向S,这样P结点的原前驱结点就不能找到了,因而指针修改步骤3和4不成立。
|
|
|
|
|
|
|
|
|
可见,指针的修改次序是链表插入成功与否的关键因素之一;同理,在进行结点的删除时也同样需要主要指针的次序。
|
|
|
|
|
|
|
|
|
|
|
|