假设双链表结点的类型如下: Typedef struct linknode {int data; /*数据域*/ struct linknode *llink; /*llink是指向前驱结点的指针域

admin2010-01-17  29

问题 假设双链表结点的类型如下:    Typedef struct linknode    {int data;                  /*数据域*/    struct linknode *llink;    /*llink是指向前驱结点的指针域*/    struct linknode *rlink;    /*rlink是指向后续结点的指针域*/    }bnode    下面给出的算法段是要把一个q所指的新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,能正确完成要求的算法段是(32)。  

选项 A、q->rlink=p;q->llink=p->llink;p->llink=q;p->llink->rlink=q;
B、p->llink=q;q->rlink=p;p->llink->rlink=q:q->llink=p->llink;
C、q->llink=p->llink:q->rlink=p;p->llink->rlink=q;p->llink=q;
D、以上都不对

答案C

解析 本题考查链表的操作问题。在链表中插入一个结点时,首先需要确定插入的位置,题目中是插入在p结点前面,因此,需要把插入结点q的rlink指向p,q的llink指向p的llink。然后,需要把p的llink指向q,p的前驱结点的rlink也指向q。
转载请注明原文地址:https://kaotiyun.com/show/0ljZ777K
0

相关试题推荐
最新回复(0)