信息系统开发与维护

填空题如果要在链表中删除一个元素,则只要将要删除的元素的()一个元素的指针调整为指向要删除的元素的下一个元素。

题目
填空题
如果要在链表中删除一个元素,则只要将要删除的元素的()一个元素的指针调整为指向要删除的元素的下一个元素。
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用()。

A.只有表头指针没有表尾指针的循环单链表

B.只有表尾指针没有表头指针的循环单链表

C.非循环双链表

D.循环双链表


正确答案:B

第2题:

如果对线性表的运算只有4种,即删除第一个元素,删除最后一个元素,在第一个元素面前插入新元素,在最后一个元素的后面插入新元素,则最好使用( )。

A.只有表尾指针没有表头指针的循环单链表

B.只有表尾指针没有表头指针的非循环双链表

C.只有表头指针没有表尾指针的循环双链表

D.既有表头指针也有表尾指针的循环单链表


正确答案:C

第3题:

若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

A.单链表

B.仅有头指针的单循环链表

C.双链表

D.仅有尾指针的单循环链表


参考答案:D

第4题:

性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(5)存储方式最节省运算时间。

A.单链表

B.仅有头指针的单循环链表

C.双链表

D.仅有尾指针的单循环链表


正确答案:D
解析:仅有头指针的单循环链表最费时。

第5题:

某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。删除运算是指删除表头第一个元素,那么采用 ______ 存储方式最节省运算时间

A.仅有尾指针的单向循环链表

B.仅有头指针的单向循环链表

C.单向链表

D.顺序存储


正确答案:A
解析:由于规定了插入运算是在表尾插入一个新元素,删除运算是指删除表头第一个元素。如果使用单向链表、仅有头指针的单向循环链表,每次插入结点都要遍历整个链表,找到链尾,才能进行插入。如果采用顺序存储,每次删除表头元素时,都要移动n-1个元素。如果使用仅有尾指针的单向循环链表,插入新元素时,仅需移动尾指针就可以了:删除结点时,只需要一步操作就可以定位到头结点,就可以删除了,因为头结点是尾指针的下一个结点。

第6题:

若某线性表中最常用的操作是在最后一个元素之前插入和删除元素,则采用______最节省运算时间。

A.单链表

B.仅有头指针的单循环链表

C.仅有尾指针的单循环链表

D.双链表


正确答案:D
解析:链式存储有:单链表(线性链表)、循环链表、双向链表。
  单链表从链表的第一个表元开始,将线性表的节点依次存储在链表的各表元中。链表的每个表元除要存储线性表节点信息外,还要一个成分用来存储其后继节点的指针。
  循环链表是单链表的变形,其特点是表中最后一个节点的指针域指向头节点,整个链表形成一个环。
  因此,从表中的任意一个节点出发都可以找到表中的其他节点。循环链表中,从头指针开始遍历的结束条件不是节点的指针是否为空,而是是否等于头指针。为简化操作,循环链表中往往加入表头节点。
  双向链表的节点中有两个指针域,其一指向直接后继,另一指向直接前驱,克服了单链表的单向性的缺点。

第7题:

在一个长度为n(n>1)的带头结点的单链表head上,另设有尾指针r(指向尾结点),执行()操作与链表的长度有关。

A.删除单链表中的第一个元素

B.删除单链表中的尾结点

C.在单链表的第一个元素前插入一个新结点

D.在单链表的最后一个元素后插入一个新结点


参考答案:B

第8题:

在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。

A.删除单链表中的第一个元素

B.删除单链表中的最后一个元素

C.在单链表第一个元素前插入一个新元素

D.在单链表最后一个元素后插入一个新元素


正确答案:B

第9题:

对长串为n的顺序线性表进行删除元素的操作,如果删除每一个元素的概率相同,则删除一个元素移动元素的平均次数为

A.n/2

B.(n-1)/2

C.(n+1)/2

D.n


正确答案:B
解析:对长度为n的顺序线性表进行删除元素的操作,删除第i个元素移动元素的个数为n-i。如果删除每一个元素的概率相同,则概率为1/n,所以插入一个元素移动(n-1)/2。

第10题:

阅读以下说明和 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-1

define 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 (i<1 ∣∣ !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; }


正确答案:(1) k<i
(2) p = p->next
(3) p=L
(4) p->next
(5) *e = q->data

更多相关问题