计算机类

请编程实现单向链表的倒置,节点的结构自己定义

题目

请编程实现单向链表的倒置,节点的结构自己定义

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面更合适表示队列的链表结构是()

A.单向循环链表

B.单向链表

C.双向链表

D.双向循环链表


B

第2题:

删除单向链表中指定节点


Status ListDelete_L(LinkList &L,int i, Elemtype &e) { //delete No.i node in Linklist L with head node p=L;j=0; while(p&&j<i-1) { p=p->next;j++;} //to find prior node of No.i if(!(p->next)||j>i-1) return ERROR; // i<1 or i>length q=p->next; //q point to delete i node p->next=q->next; // delete i node e=q->data; //return value of node i free(q); // free deleted node return OK; } //listDelete_L

第3题:

23、在单链表中,增加一个头节点的目的是为了 _______。

A.使单链表至少有一个节点

B.标识链表中重要节点的位置

C.方便运算的实现

D.说明单链表是线性表的链式存储结构


C

第4题:

5、在单链表中,增加一个头节点的目的是为了

A.使单链表至少有一个节点

B.标识链表中重要节点的位置

C.方便运算的实现

D.说明单链表是线性表的链式存储结构


方便运算的实现

第5题:

在链表结构中,采用______可以用最少的空间代价和最高的时间效率实现队列结构。

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

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

C.仅设置尾指针的双向链表

D.仅设置头指针的双向链表


正确答案:A
解析:从空间的角度考虑,采用链表作为存储结构,应当使用单链表,没有必要采用双向链表从两个方向遍历元素。所以排除选项C和选项D。队列的特点是,先进先出。从时间效率的角度考虑,同时具有头指针和尾指针的话,入队和出队操作最为简单。但题目中仅仅给出了只有头指针或者只有尾指针的情况。那么:①如果仅仅设置头指针,那么,删除元素时,只要修改第一个元素的指向即可。如果要插入元素,则需要遍历整个链表,才能到达尾指针的位置。②如果仅仅设置尾指针,那么,如果要实现删除操作,可以取尾指针域的值,直接获得头指针。如果要执行插入操作,那么,修改两个尾指针的指针域以及新插入结点的指针域即可。通过比较,仅仅设置尾指针,更节省时间。选项A是正确答案。

第6题:

在链表结构中,采用(42)可以用最少的空间代价和最高的时间效率实现队列结构。

A.仅设置头指针的单向循环链表

B.仅设置尾指针的双向链表

C.仅设置头指针的双向链表

D.仅设置尾指针的单向循环链表


正确答案:D
解析:采用链表作为存储结构时,从节省空间的角度和需要实现的运算角度考虑(不需要从两个方向遍历元素),应使用单链表。基本队列定义为元素从一端进从另一端出,以保证先进入的元素先出来。若要以最高的时间效率实现元素入、出队列,就应该在链表两端设置指针,使入队和出队操作最简单。若仪设置头指针(指向链表的第一个节点),删除元素时比较简单(修改第一个节点的指针域的指向),而插入元素时就需要遍历整个链表以获得尾指针。若仪设置尾指针(指向链表的最后一个节点),则可直接获得头指针(取尾节点指针域的值)来实现删除操作,插入元素时只需修改两个指针域(尾节点指针域和新插入节点的指针域)。显然,在链表结构中,采用仅设置尾指针的单向循环链表,可以用最少的空间代价和最高的时间效率实现队列结构。

第7题:

在链表结构中,采用(35)可以用最少的空间代价和最高的时间效率实现队列结构。

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

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

C.仅设置尾指针的双向链表

D.仅设置头指针的双向链表


正确答案:A
解析:本题考查基本数据结构和存储结构知识。采用链表作为存储结构时,从节省空间的角度和需要实现的运算角度考虑(不需要从两个方向遍历元素),应使用单链表,如下图所示。基本队列定义为元素从一端进从另一端出,以保证先进入的元素先出来。若以最高的时间效率实现元素入、出队列,就应该在链表两端设置指针,使入队和出队操作最简单。从下图可以看出,若仅设置头指针(指向链表的第一个结点),删除元素时比较简单(修改第一个结点的指针域的指向),而插入元素时就需要遍历整个链表以获得尾指针。若仅设置尾指针(指向链表的最后一个结点),则可直接获得头指针(取尾结点指针域的值)以实现删除操作,插入元素时则修改两个指针域(尾结点指针域和新插入结点的指针域)。

第8题:

在链表结构中,采用(59)可以用最少的空间代价和最高的时间效率实现队列结构。

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

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

C.仅设置尾指针的双向链表

D.仅设置头指针的双向链表


正确答案:A
解析:采用链表作为存储结构时,从节省空间的角度和需要实现的运算角度考虑(不需要从两个方向遍历元素),应使用单链表,如图2-17所示。

基本队列定义为元素从一端进从另一端出,以保证先进入的元素先出来。若以最高的时间效率实现元素入、出队列,就应该在链表两端设置指针,使入队和出队操作最简单。从下图可以看出,若仅设置头指针(指向链表的第一个结点),删除元素时比较简单(修改第一个结点的指针域的指向),而插入元素时就需要遍历整个链表以获得尾指针。若仅设置尾指针(指向链表的最后一个结点),则可直接获得头指针(取尾结点指针域的值)以实现删除操作,插入元素时则修改两个指针域(尾结点指针域和新插入结点的指针域)。

第9题:

若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。

A.仅设尾指针的单向链表

B.仅设头指针的单向链表

C.仪设尾指针的单向循环链表

D.仅设头指针的单向循环链表


参考答案:C
单向链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),但是不能访问除了尾节点之外的所有其他节点。单向循环链表仅设头指针时,在表尾插入节点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入节点的时间复杂度为0(1),同时达到表头节点的时间复杂度为0(1),因此对于题中给出的操作要求,适合采用仅设尾指针的单向循环链表。