删除单向链表中指定节点
删除单向链表中指定节点
参考答案和解析
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.仅设头指针的单向循环链表
有以下结构体说明和变量定义,如图所示,指针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。() 此题为判断题(对,错)。
某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。删除运算是指删除表头第一个元素,那么采用 ______ 存储方式最节省运算时间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;
若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。A、仅设尾指针的单向链表B、仅设头指针的单向链表C、仪设尾指针的单向循环链表D、仅设头指针的单向循环链表
多选题要想删除1个链表中的节点,必须的操作包括:()A判断该节点是否是头节点B删除该节点C将前1节点的指针指向被删除节点的后1节点D将被删除节点的指针设为空