删除单向链表中指定节点

删除单向链表中指定节点


参考答案和解析
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

相关考题:

若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。 A.仅设尾指针的单向链表B.仅设头指针的单向链表C.仪设尾指针的单向循环链表D.仅设头指针的单向循环链表

在单链表中,要删除一个指定的节点,必须要找到该节点的______。

设某链表中最常用的操作是在链表的尾部插入或删除元素,假定链表只记录表头指针,则选用下列()存储方式最节省运算时间。A.单向链表B.单向循环链表C.双向链表D.双向循环链表

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续节点。 struct node {int data;struct node*next;}*P,*q,*r; 现要将q所指节点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是( )。A.p->next=q->next;B.p->next=P->next->next;C.p->next=r;D.p=q->next;

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

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

循环链表的主要优点是(44)。A.已知某个节点的位置后,能很容易找到它的直接前驱节点B.在进行删除操作后,能保证链表不断开C.从表中任意节点出发都能遍历整个链表D.不再需要头、尾指针

若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用______存储方式最节省时间。A.单链表B.双链表C.单循环链表D.带头节点的双循环链表

循环链表的主要优点是(1)。A.不再需要头指针了B.已知某个节点的位置后,能很容易找到它的直接前驱节点C.在进行删除操作后,能保证链表不断开D.从表中任一节点出发都能遍历整个链表

某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。删除运算是指删除表头第一个元素,那么采用 ______ 存储方式最节省运算时间A.仅有尾指针的单向循环链表B.仅有头指针的单向循环链表C.单向链表D.顺序存储

与单向链表相比,双向链表______。A.需要较少的存储空间B.遍历元素需要的时问较短C.较易于访问相邻节点D.较易于插入和删除元素A.B.C.D.

链表对于数据元素的插入和删除不需移动节点,只需改变相关节点的______域的值。

不问的存储结构适用于不同的应用场合。某线性表最常用的运算是插入和删除,删除运算是指删除表头第一个元素,插入运算是指在表尾插入一个新元素,那么采用(105)存储方式最好。A.仅有头指针的单向循环链表B.仅有尾指针的单向循环链表C.单向链表D.双向链表

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

单向链表的每一个节点都有一个指向它的后续节点的指针link,现有节点p和q,节点q在节点p的前面,要删除节点p,正确的操作应该是A.q↑.link:=p↑.link;B.p↑.link:=q↑.link;C.q↑.link:=p;p↑.link:=q;D.q:=p↑.link;p↑.link:=q↑.link;

循环链表的主要优点是(64)。A.不再需要头指针B.在进行删除操作后,能保证链表不断开C.从表中任一节点出发都能遍历整个链表D.能很容易找到它的直接前驱节点

下列是在具有头结点单向链表中删除第i个结点的算法,请在空格内填上适当的语句。

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

若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。A、仅设尾指针的单向链表B、仅设头指针的单向链表C、仪设尾指针的单向循环链表D、仅设头指针的单向循环链表

设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列()存储方式最节省运算时间。A、单向链表B、单向循环链表C、双向链表D、双向循环链表

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

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

要想删除1个链表中的节点,必须的操作包括:()A、判断该节点是否是头节点B、删除该节点C、将前1节点的指针指向被删除节点的后1节点D、将被删除节点的指针设为空

简述删除单向链表的第k个数据元素的过程。

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

问答题简述删除单向链表的第k个数据元素的过程。

单选题设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列()存储方式最节省运算时间。A单向链表B单向循环链表C双向链表D双向循环链表

多选题要想删除1个链表中的节点,必须的操作包括:()A判断该节点是否是头节点B删除该节点C将前1节点的指针指向被删除节点的后1节点D将被删除节点的指针设为空