niusouti.com

单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是()。A.若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1) B.在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理 C.加入头结点后,在链表中进行查找运算的时间复杂度为O(1) D.加入头结点后,代表链表的头指针不因为链表为空而改变

题目
单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是()。

A.若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)
B.在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理
C.加入头结点后,在链表中进行查找运算的时间复杂度为O(1)
D.加入头结点后,代表链表的头指针不因为链表为空而改变

相似考题
更多“单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是()。”相关问题
  • 第1题:

    对于单链表存储结构,以下说法错误的是()

    A.一个结点的数据域用于存放线性表的一个数据元素

    B.一个结点的指针域用于指向下一个数据元素的结点

    C.单链表必须带有头结点

    D.单链表中的所有结点可以连续存放,也可以不连续存放


    参考答案:C

  • 第2题:

    关于循环链表与线性链表,不正确的是( )。

    A.每个结点的组成是数据域和指针域

    B.循环链表中最后一个结点的指针指向链表的第一个结点

    C.循环链表中访问指定结点的直接前驱可直接访问

    D.循环链表中的循环条件是判断当前指针是否指向头指针


    正确答案:C
    解析:循环链表从任意一结点出发可以找到表中的其他结点,但其查找方向固定,要找到其直接前趋,需要从其后继结点开始,访问完表中的所有结点指针才能完成。

  • 第3题:

    阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。
    [说明]
    函数ReverseList(LinkList headptr)的功能是将含有头结点的单链表就地逆置。处理思路是将链表中的指针逆转,即将原链表看成由两部分组成:已经完成逆置的部分和未完成逆置的部分,令s指向未逆置部分的第一个结点,并将该结点插入已完成部分的表头(头结点之后),直到全部结点的指针域都修改完成为止。
    例如,某单链表如图1所示,逆置过程中指针s的变化情况如图2所示。

    链表结点类型定义如下:

    typedef struct Node{ int data; Struct Node *next; }Node,*LinkList; [C函数] void ReverseList(LinkList headptr) { //含头结点的单链表就地逆置,headptr为头指针 LinkList p,s; if(______) return; //空链表(仅有头结点)时无需处理 P=______; //令P指向第一个元素结点 if(!P->next) return; //链表中仅有一个元素结点时无需处理 s=p->next; //s指向第二个元素结点 ______ =NULL; //设置第一个元素结点的指针域为空 while(s){ p=s; //令p指向未处理链表的第一个结点 s= ______; p->next=headptr->next; //将p所指结点插入已完成部分的表头 headptr->next= ______; } }


    答案:
    解析:
    !headptr->next,或!headptr||!headptr->next,或其等价形式
    headptr->next
    headptr->next->next,或p->next,或其等价形式
    s->next,或p->next, 或其等价形式
    p

  • 第4题:

    线索链表中的rtag域值为()时,表示该结点无右孩子,此时()域为指向该结点后继线索的指针。


    正确答案:1;RChild

  • 第5题:

    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。新开辟一个结点,使指针s指向该结点,结点的数据成员data赋值为1。


    正确答案:s=(NODE*)malloc(sizeof(NODE));s->data=1;

  • 第6题:

    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。


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

  • 第7题:

    设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式()的结果为真,则p所指结点为尾结点。


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

  • 第8题:

    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。已知p1指向另一个新结点,把它插入到p所指结点和尾结点之间。


    正确答案: P1->next=p->next;
    P->next=p1;

  • 第9题:

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


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

  • 第10题:

    单选题
    以下说法中不正确的是()。
    A

    双向循环链表中每个结点需要包含两个指针域

    B

    已知单向链表中任一结点的指针就能访问到链表中每个结点

    C

    顺序存储的线性链表是可以随机访问的

    D

    单向循环链表中尾结点的指针域中存放的是头指针


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

  • 第11题:

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

    正确答案: head=head->next;
    解析: 暂无解析

  • 第12题:

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

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

  • 第13题:

    在带头结点的非空单链表中,头结点的位置由()指示,首元结点的存储位置由()指示,除首元结点外,其它任一元素结点的存储位置由()指示。

    A.头指针

    B.头结点的指针域的指针

    C.前驱结点的指针域的指针


    参考答案:A,B,C

  • 第14题:

    程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。

    该程序段实现的功能是( )。

    A.首结点成为尾结点

    B.尾结点成为首结点

    C.删除首结点

    D.删除尾结点


    正确答案:A
    循环找到末尾结点,然后赋值给第一个结点,所以选择A)。

  • 第15题:

    在循环双向链表中表头结点的左指针域指向()结点,最后一个结点的右指针域指向()结点。


    正确答案:表尾;表头

  • 第16题:

    在具有头结点的单链表中,头指针指向链表的第一个数据结点。


    正确答案:错误

  • 第17题:

    设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->next=(),则p所指结点为尾结点。


    正确答案:head

  • 第18题:

    设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句()。


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

  • 第19题:

    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。


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

  • 第20题:

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


    正确答案:head=head->next;

  • 第21题:

    问答题
    设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句。新开辟一个结点,使指针s指向该结点,结点的数据成员data赋值为1。

    正确答案: s=(NODE*)malloc(sizeof(NODE));s->data=1;
    解析: 暂无解析

  • 第22题:

    填空题
    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。

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

  • 第23题:

    填空题
    在循环双向链表中表头结点的左指针域指向()结点,最后一个结点的右指针域指向()结点。

    正确答案: 表尾,表头
    解析: 暂无解析

  • 第24题:

    填空题
    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。

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