1、已知 pPre 为指向链表中某结点的指针, pNew 是指向新结点的指针,以下哪段伪码算法是将一个新结点插入到链表中 pPre 所指向结点的后面?(C )
A pPre->link = pNew; pNew = null;
B pPre->link = pNew->link; pNew->link = null;
C pNew->link = pPre->link; pPre->link = pNew;
D pNew->link = pPre->link; pPre->link = null;
题解:
首先将旧结点的指针域(即pPre->Link,它存放着接下来的那个结点的地址)赋值给新结点的指针域(pNew- >Link),这一步是因为:为了完成插入,新结点应该指向旧结点原来指向的元素。
然后将指向新结点的指针(pNew,即新结点的地址)赋值给旧结点的指针域(pPre->Link),以让旧结点指向新结点。
2、在具有 n 个结点的单链表中,实现( A )的操作,其算法的时间复杂度都是 O
(n)
A、遍历链表或求链表的第 i 个结点
B、在地址为 P 的结点之后插入一个结点
C、删除开始结点
D、删除地址为 P 的结点的后继结点
题解:
B,D答案的意思是只是针对插入和删除这个动作的时间复杂度是多少&#x