3、已知h是指向单向加头(加监督元)链表的头指针,删除首元结点(第一个实际元素结点)的操作是_____。A.p=h,h=p->next;free(p);B.p=h->next;free(p);h=h->next;C.p=h->next,h->next=p->next;free(p);D.free(h->next);h=h->next;

3、已知h是指向单向加头(加监督元)链表的头指针,删除首元结点(第一个实际元素结点)的操作是_____。

A.p=h,h=p->next;free(p);

B.p=h->next;free(p);h=h->next;

C.p=h->next,h->next=p->next;free(p);

D.free(h->next);h=h->next;


参考答案和解析
p=h->next,h->next=p->next;free(p);

相关考题:

程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针向链表的第—个结点。若有以下程序段 q=s; s=s->next; p=s; while(p->next) p=p->next; P->next=q; q->next=NULL; 该程序段实现的功能是______。A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点

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

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

单向循环链表是单向链表的一种扩充,当单向链表带有头结点时,把单向链表中尾结点的指针域由空指针改为回答;当单向链表不带头结点时,则把单向链表中尾结点的指针域由空指针改为指向()。

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

程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。该程序段实现的功能是( )。A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点

阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数 GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函数DelListElem(LinkList L,int i,ElemType *e) 的功能是删除含头结点单链表的第 i个元素结点,若成功则返回 SUCCESS ,并由参数e 带回被删除元素的值,否则返回ERROR 。 例如,某含头结点单链表 L 如图 4-1 (a) 所示,删除第 3 个元素结点后的单链表如 图 4-1 (b) 所示。图4-1define SUCCESS 0 define ERROR -1 typedef int Status; typedef int ElemType; 链表的结点类型定义如下: typedef struct Node{ ElemType data; struct Node *next; }Node ,*LinkList; 【C 代码】 LinkList GetListElemPtr(LinkList L ,int i) { /* L是含头结点的单链表的头指针,在该单链表中查找第i个元素结点: 若找到,则返回该元素结点的指针,否则返回NULL */ LinkList p; int k; /*用于元素结点计数*/ if (i1 ∣∣ !L ∣∣ !L-next) return NULL; k = 1; P = L-next; / *令p指向第1个元素所在结点*/ while (p (1) ) { /*查找第i个元素所在结点*/ (2) ; ++k; } return p; } Status DelListElem(LinkList L ,int i ,ElemType *e) { /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/ LinkList p,q; /*令p指向第i个元素的前驱结点*/ if (i==1) (3) ; else p = GetListElemPtr(L ,i-1); if (!p ∣∣ !p-next) return ERROR; /*不存在第i个元素*/ q = (4) ; /*令q指向待删除的结点*/ p-next = q-next; /*从链表中删除结点*/ (5) ; /*通过参数e带回被删除结点的数据*/ free(q); return SUCCESS; }

在长度为n(Il>1)的()上,删除第一个元素.其时间复杂度为O(n)。A.只有首结点指针的不带头结点的循环单链表B.只有尾结点指针的不带头结点的循环单链表C.只有尾结点指针的带头结点的循环单链表D.只有头结点的循环单链表

以下函数在head为头指针的具有头结点的单向链表中删除第1个结点,补充程序。

在带有头结点的单链表HL中,要在首元元素之前插入一个由指针p指向的结点,则应执行p-next=HL-next及()操作。

在带有头结点的双链表L中,指针p所指结点是第一个元素结点的条件是()。

描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

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

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

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

要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head-next;()。

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

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

单选题用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( )。A仅修改队头指针B仅修改队尾指针C队头、队尾指针都要修改D队头、队尾指针都可能要修改

单选题设有头指针为head的带有头结点的非空单向循环链表,指针p指向其尾结点,要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head-next ;()。Ap=head;Bp=NULL;Cp-next=head;Dhead=p;

填空题要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head-next;()。

填空题在带有头结点的单链表HL中,要在首元元素之前插入一个由指针p指向的结点,则应执行p-next=HL-next及()操作。

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

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

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

问答题描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

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

判断题在具有头结点的单链表中,头指针指向链表的第一个数据结点。A对B错