更多“从单链表中删除指针s所指结点的下一个结点t,其关键运算步骤为()。A、s↑link:=tB、t↑link:=sC、t↑link:=s↑linkD、s↑link:=t↑link”相关问题
  • 第1题:

    单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的单链表结点之后,下面的操作序列中正确的是( )

    A)q;=p↑.link;p↑.link:=q↑,link;

    B)p↑.link.q↑.link;q:=p↑.link;

    C)q↑.link::p↑.link;P↑.link:=q;

    D)P↑.link:=q;q↑.link:=p↑.link;


    正确答案:C
    由单链表的存储结构可知,每个结点的指针域保存其后继结点的指针。将指针为q的新结点插入到指针为P的结点之后,则原指针为P的结点的后继结点成为新结点的后继结点,由单链表的存储结构可知应执行q↑.link:=p↑.link,新结点成为指针P的后继结点,因此应执行p↑.link:=q,综上所述,选项C)是正确的。 

  • 第2题:

    在一个单链表中,若p所指结点不是最后结点,在p所指结点之后插入s所指结点,则应执行(32)操作。

    A.s->link=p;p->link=s;

    B.s->link=p->link:p->link=s:

    C.S->link=p->link; p=s:

    D.p->link=s:s->link=p:


    正确答案:B
    解析:s->link=p->link;s的后继指向p的后继;p->link=s;p的后继为s,这样实现在p后插入s结点的操作。

  • 第3题:

    在一个单链表中,若q节点是p节点的前驱节点,若在q与p之间插入节点s,则执行( )。

    A.s→qink=p→link; p→link=s

    B.p→link=s; s→qink=q

    C.p→link=s→link; s→link=p

    D.q→link=s; s→link=p


    正确答案:D
    解析:在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱节点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱节点原先的后继节点。

  • 第4题:

    单键表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中哪一个是正确的?

    A.q:=p^.link;p^.link:=q^.link;

    B.p^.link:=q^.link;q:=p^.link;

    C.q^.link:=p^.link;p^.link:=q;

    D.p^.link:=q;q^.link:=p^.link;


    正确答案:C
    解析:本题考核有关计算机键表的基本知识,参考2.2.2“键表”一节。

  • 第5题:

    在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( )。

    A.s→link=p→dink; p→link=s

    B.p→link=s; s→link=q

    C.p→link=s→4ink; s→link=p

    D.q→link=s; s→link=p


    正确答案:D
    解析:在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱结点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱结点原先的后继节点。

  • 第6题:

    单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现将从单链表中删除指针p所指的下一结点。下面的操作序列中哪一个是正确的?

    A.q:=p^.1ink;p^.link:=q^.link

    B.p^.link:=q^.link;q:=p^.link

    C.q^.link:=p^.link;p^.link=q

    D.p^.link:=q;q^.link:=p^.link


    正确答案:A
    解析: 单链表是链式存储的线性表,它的每个结点中包括一个指针link,它指向该结点的后继结点的位置。从单链表中删除指针P所指的下一结点的运算表达式为 q:^=p^.link;p^.link:=q^.link。

  • 第7题:

    设单链表中结点的结构为已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作______。

    A.s->link=p;p->link=s;

    B.s->link=p->link;p->link=s;

    C.s->link=p->link;p=s;

    D.p->link=s;s->link=p;


    正确答案:B

  • 第8题:

    在一个单链表中,若q结点是p结点的前驱结点,在q与p之间插入结点s,则执行( )。

    A.s→link=p→link; p→link=s

    B.p→link=s; s→link=q

    C.p→link=s→link; s→link=p

    D.q→link=s; s→link=p


    正确答案:D
    解析:在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱结点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱结点原先的后继节点。

  • 第9题:

    从单链表中删除指针s所指结点的下一个结点t,其关键运算步骤为( )。

    A.s↑.link:=t

    B.t↑.link:=s

    C.t↑.link:=s↑.link

    D.s↑.link:=t↑.link


    正确答案:D
    解析:链表的一个重要特点是插入、删除运算灵活方便,不需要移动结点,只需要改变结点中指针域的值即可。在链表中进行删除运算的关键步骤为:t:=s↑.link;s↑.link=t↑.link。做删除运算时改变的是被删除结点的前一个结点中指针域的值。

  • 第10题:

    设单循环链表中结点的结构为(data,link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。若想删除链表第一个结点,则应执行下列哪一个操作()。

    A.s=rear;rear=rear->link;deletes;
    B.rear=rear->link;deleterear;
    C.rear=rear->link->link;deleterear;
    D.s=rear->link->link;rear->link->link=s->link;deletes;s为第一个结点硫

    答案:D
    解析:
    若要删除结点需要改变尾指针的指向。

  • 第11题:

    设单链表中结点结构为(data,link).若想摘除结点*p的直接后继,则应执行下列哪一个操作()

    • A、p->link=p->link->link
    • B、p=p->link;p->link=p->link->link
    • C、p->link=p->link
    • D、p=p->link->link

    正确答案:A

  • 第12题:

    单选题
    在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行()
    A

    link(s)←link(p),link(p)←s

    B

    link(q)←s,link(s)←p

    C

    link(p)←link(s),link(s)←p

    D

    link(p)←s,link(s)←q


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

  • 第13题:

    在单链表中在指针p所指结点后插入结点q的操作是

    A.q:=p↑.link; p↑.link:=q↑.link

    B.p↑.link:=q↑.link; q↑.link:=p↑.link

    C.q↑.link:=p; p↑.link:=q

    D.q↑.link:=p↑.link; p↑.link:=q


    正确答案:D
    解析:单链表中指针p所指结点后插入结点q的操作是q↑.link:=p↑.link;p↑.link:=q。掌握在链表指针的数据结构中,如何进行删除操作。

  • 第14题:

    阅读以下说明,回答问题1~5,将解答填入对应的解答栏内。

    [说明] 若s和t是用单链表存储的两个串,设计一个函数将s串中首次与串t匹配的字串逆置。

    linkstring * invert - substring ( s, t)

    linkstring * s, * t;

    {

    linkstring *prior, *p, *t1, *r, *q, *u;

    prior =s;

    p=s;

    t1 =t;

    if ( (1) ) printf ( "error\n") ;

    else

    {

    while { p ! = NULL && t1! = NULL)

    {

    if ( p- >data = = t1 - >data)

    {

    p = p- >link;

    t1 = t1- >link;

    }

    else

    {

    (2)

    p = prior - > link;

    }

    t1 = t- >link;

    }

    if ( t1 ! : NULL) printf ("cannot find");

    else

    {

    (3)

    r = q- >link;

    q- >link = p;

    while (r ! = p)

    {

    u = r- >link;

    (4)

    q=r;

    r = u;

    }

    (5)

    }

    }

    }


    正确答案:(1) p=NULL||t1=NULL (2) prior=prior->link (3) q=prior->link; (4) r->link=q; (5) prior->link=q;
    (1) p=NULL||t1=NULL (2) prior=prior->link (3) q=prior->link; (4) r->link=q; (5) prior->link=q; 解析:设t和s是用带头结点的单链表表示的,首先在s串中查找首次与串t匹配的子串,若未找到,显示相应信息并返回;否则将该子中逆置,先将子串的第一个结点链接到p的前面,再将该子串的第二个结点链接到前面移动的第二个结点的前面,如此下去,便逆置了该于串。

  • 第15题:

    设单链表中节点的结构为(data,link)。已知指针q所指节点是指针p所指节点的直接前驱,若在*q与*p之间插入节点*s,则应执行下列哪一个操作?

    A.s↑.link:=p↑.link;p↑.link:=s

    B.q↑.link:=s;s↑.link:=p

    C.p↑.link:=s↑.link;s↑.link:=p

    D.p↑.link:=s;s↑.link:=q


    正确答案:B
    解析:在单链表中两个节点之间插入一个新节点,要把前面节点的指针域指向新插入的节点(q↑.link=s),把新插入的节点的指针域指向后面的节点(s↑.link=p)。

  • 第16题:

    设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行的操作是(31)。

    A.top->link=s;

    B.s->link=top->link;top->link=s;

    C.s->link=top;top=s;

    D.s->link=top;top=top->link;


    正确答案:C
    解析:s作为新的栈顶,top指向s。

  • 第17题:

    向一个栈顶指针为H的链栈中插入一个s所指向的结点时,需执行()。

    A.H->link=s

    B.s->link=H->link;H->link=s;

    C.s->link=H;H=s;

    D.s->link=H;H=H->link;


    正确答案:C

  • 第18题:

    在一个单链表中,q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行(29)。

    A.s→link=p→link;p→link=s;

    B.p→link=s;s→link=q;

    C.p→link=s→link;s→link=p;

    D.q→link=s;s→link=p;


    正确答案:D
    解析:q结点是p结点的前驱结点,若在q与p之间插入结点s,只需先将q的指针指向s,然后再将s指向p即可。

  • 第19题:

    设单链表中结点的结构为(dara,link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?

    A.s↑.link:=p↑.link;p↑.link:=s

    B.q↑.link:=s;s↑.link:=p

    C.p↑.link:=s↑.link;s↑.link:=p

    D.p↑.link:=s;s↑.link:=q


    正确答案:B
    解析:在单链表中两个节点之间插入一个新结点,耍把前面结点的指针域指向新插入的结点(q↑.link=s),把新插入的结点的指针域指向后面的结点(s↑.link=p)。

  • 第20题:

    单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的的单链表结点之后,下面的操作序列中哪一个是正确的?

    A.q:=p↑.link; p↑.link:=q↑.link;

    B.p↑.link:=q↑.link; q:=p↑.link;

    C.q↑.link:=p↑.link;p↑link:=q;

    D.p↑.link:=q; q↑.link:=p↑.link;


    正确答案:C
    解析:将指针p所指向的地址赋于q,将q的值赋于p指向的地址。

  • 第21题:

    在一个单链表中,若q结点是p结点的前驱结点,在q与p之间插入结点s,则执行( )。

    A.s->link=p->link;p->link=s

    B.p->link=s;s->link=q

    C.p->link;s->link;s->link=p

    D.q->link=s;s->link=p


    正确答案:D
    解析:在单链表中插入一个元素需要执行以下步骤:首先将待插入节点的前驱结点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱结点原先的后继节点。

  • 第22题:

    在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行()

    • A、link(s)←link(p),link(p)←s
    • B、link(q)←s,link(s)←p
    • C、link(p)←link(s),link(s)←p
    • D、link(p)←s,link(s)←q

    正确答案:B

  • 第23题:

    单选题
    从单链表中删除指针s所指结点的下一个结点t,其关键运算步骤为()。
    A

    s↑link:=t

    B

    t↑link:=s

    C

    t↑link:=s↑link

    D

    s↑link:=t↑link


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