niusouti.com

在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是()。 注:双向链表的结点结构为(prior,data,next)。A.p->prior=q;q->next=p;p->prior->next=q;q->prior=q;B.p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;C.q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;D.q->prior=p->prio

题目

在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是()。 注:双向链表的结点结构为(prior,data,next)。

A.p->prior=q;q->next=p;p->prior->next=q;q->prior=q;

B.p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;

C.q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;

D.q->prior=p->prior;q->next=q;p->prior=q;p->prior=q;


相似考题
参考答案和解析
p->prior->next=q; q->next=p; q->prior=p->prior;p->prior=q;
更多“在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是()。 注:双向链表的结点结构为(prior,data,next)。”相关问题
  • 第1题:

    阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

    【说明】

    设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。

    【函数】

    void Locate( int &x)

    { <结点类型说明>

    * p =first -> next;

    while(p!=frist&&(1))P=P->next;

    if(p! =first) /*链表中存在x*/

    {(2);

    <结点类型说明>

    * current = P; /*从链表中摘下这个结点*/

    Current -> prior -> next = current -> next;

    Current -> next -> prior = current -> prior;

    P = current -> prior; /*寻找重新插入的位置*/

    While(p! =first &&(3))p=p->prior;

    Current-> next =(4); /*插入在P之后*?

    Current -> prior = P;

    P -> next -> prior = current;

    P->next=(5);

    }

    else printf("Sorry. Not find! \n"); /*没找到*/

    }


    正确答案:(1)p->data!=x (2)p->freq++ (3)current->freq>P->freq (4)p->next (5)current
    (1)p->data!=x (2)p->freq++ (3)current->freq>P->freq (4)p->next (5)current 解析:(1)空所在的循环是定位x,将指针指向x结点(如存在的话),因此(1)空应填写“p->data!=x”。显然,(2)空是使该结点的访问频度加1,因此(2)空应填写“p->freq++”。(3)空所在的循环是根据访问频度定位x结点的新位置,用P指向x结点的前驱,因此(3)空处应填“current->freq>P->freq”。
    (4)、(5)空之间的语句是将结点x插入在P之后。(4)空所在语句是将指针P指向x结点的前驱,因此(4)空应填写“p->next”。(5)空所在语句是将P后继指向结点current,因此空(5)处应填写“current”。

  • 第2题:

    设指针变量p指向单链表中的结点A,则删去结点A的语句序列为 Q=p->next;p->data = p->data: p->next=(); :feee(q);


    正确答案:q->next

  • 第3题:

    双向链表中有两个指针域llink和rlink,分别指向前驱和后继,设β指向表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插人为()。


    答案:D
    解析:
    p→llink→rlink=q;q→rlink=p;q→llink=p→llink;p→llink=q

  • 第4题:

    已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。

    • A、q->next=s->next;s->next=p;
    • B、s->next=p;q->next=s->next;
    • C、p->next=s->next;s->next=q;
    • D、s->next=q;p->next=s->next;

    正确答案:A

  • 第5题:

    在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是S->next=p->next;()=s;s->prior=();p->next=s;


    正确答案:p->next->prior;p

  • 第6题:

    在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。

    • A、p->next=q; q->prior=p; p->next->prior=q; q->next=q; 
    • B、p->next=q; p->next->prior=q; q->prior=p; q->next=p->next; 
    • C、q->prior=p; q->next=p->next; p->next->prior=q; p->next=q; 
    • D、q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;

    正确答案:C

  • 第7题:

    要在一个单向链表中p所指向的结点之后插入一个S所指向的新结点,若链表中结点的指针域为next,可执行()和p->next==s的操作。


    正确答案:s->next===p->next;

  • 第8题:

    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。把该结点插入链表的尾部,释放指针s的指向。


    正确答案: P->next=s;
    S->next=NULL;
    free(s)

  • 第9题:

    在一个双向链表中删除指针p所指向的结点时,需要对p->next->prior指针域赋值为()


    正确答案:p->prior

  • 第10题:

    填空题
    在一个双向链表中删除指针p所指向的结点时,需要对p->next->prior指针域赋值为()

    正确答案: p->prior
    解析: 双向链表中每个结点包含有两个指针域prior和next,分别指向其前趋结点和后继结点。删除指针p所指向的结点时,结点p的后继结点(p->next)的prior指针域应指向结点p的前趋结点p->prior。即p->nex->prior = p->prior。

  • 第11题:

    单选题
    已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
    A

    q->next=s->next;s->next=p;

    B

    s->next=p;q->next=s->next;

    C

    p->next=s->next;s->next=q;

    D

    s->next=q;p->next=s->next;


    正确答案: D
    解析: 暂无解析

  • 第12题:

    单选题
    在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是()。
    A

    p->next=q; q->prior=p; p->next->prior=q; q->next=q; 

    B

    p->next=q; p->next->prior=q; q->prior=p; q->next=p->next; 

    C

    q->prior=p; q->next=p->next; p->next->prior=q; p->next=q; 

    D

    q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;


    正确答案: A
    解析: 暂无解析

  • 第13题:

    在非空双向循环链表结点中,prior域指向该结点的直接前驱,next域指向直接后续,那么在q所指的结点后面插入p所指的结点的过程为______。

    A.q→next=p;p→prior=q;q→next→prior=p;p→next=q→next。

    B.p→next=q→next;q→next=p;q→next→prior=p;p→prior=q。

    C.p→prior=q;p→next=q→next;q→next=p;q→next→prior=p。

    D.p→next=q→next;q→next→prior=p;p→prior=q;→next=p。


    正确答案:D

  • 第14题:

    设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为()。

    A.p->next=s;s->next=q;
    B.q->next=s;s->next=p;
    C.p->next=s->next;s->next=p;
    D.s->next=p->next;p->next=-s;

    答案:B
    解析:
    插入s结点,应使s的next指针指向p结点,使q结点的next指针指向s。

  • 第15题:

    双向循环链表结点的数据类型为: 设p指向表中某一结点,要显示p所指结点的直接前驱结点的数据元素,可用操作()。

    Aprintf(“%d”,p->next->data);

    Bprintf(“%d”,p->prior->data);

    Cprintf(“%d”,p->prior->next);

    Dprintf(“%d”,p->data);


    B

  • 第16题:

    在双向链表中,要删除p所指的结点,其中所用的一条语句(p->next)->prior=p->prior;的功能是:使P所指结点的直接后继的左指针指向()


    正确答案:P所指结点的直接前驱

  • 第17题:

    设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。


    正确答案:q->next=p->next,p->next=q

  • 第18题:

    在一个单链表中p指向结点a,q指向结点a的直接后继结点b,要删除结点b,可执行()。

    • A、p->next=q->next;
    • B、p=q->next;
    • C、p->next=p;
    • D、p->next=q;

    正确答案:A

  • 第19题:

    要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行()。


    正确答案:q->next=p->next;

  • 第20题:

    非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p->prior=q,p->next=q->next,q->next=p,q->prior->next←p。


    正确答案:错误

  • 第21题:

    填空题
    在双向链表中,要删除p所指的结点,其中所用的一条语句(p->next)->prior=p->prior;的功能是:使P所指结点的直接后继的左指针指向()

    正确答案: P所指结点的直接前驱
    解析: 暂无解析

  • 第22题:

    判断题
    非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p->prior=q,p->next=q->next,q->next=p,q->prior->next←p。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

    问答题
    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。把该结点插入链表的尾部,释放指针s的指向。

    正确答案: P->next=s;
    S->next=NULL;
    free(s)
    解析: 暂无解析

  • 第24题:

    填空题
    设单链表的结点结构为(data,next)。已知指针p指向单链表中的结点,q指向新结点,欲将q插入到p结点之后,则需要执行的语句:();()。

    正确答案: q->next=p->next,p->next=q
    解析: 暂无解析