单链表删除节点 单链表的插入和删除结点的核心语句?
单链表的插入和删除结点的核心语句?
Statuslistinsert(LinkList&l,inti,elemtype){//在没有head节点的单链线性表l的第i个位置前插入元素eintj=1//初始计数器值为1linklists,P=l//P指向第一个节点,如果(i<1)//值非法,returnerrors=(LinkList)malloc(sizeof(lnode))//生成一个新节点,并将其插入到L.s->data=E//将EIF(I==1)赋给s的数据字段)//在头中插入{s->next=L//新节点指向原始的第一个节点,L=s//L指向新节点(更改L)}否则{//插入表的其余部分,同时(P&&;amp;j<i-1)//查找I-1st节点{J//counter 1p=P->next//P指向下一个节点}如果(!P) //I大于表长度1returnerror//insert failed s->next=P->next//新节点指向原始第I个节点P->next=s//原始第I个节点指向新节点}return OK//insert successed}statuslistdelete(LinkList&MPL,inti,ElemType&){//在没有头节点的单链线性表l中,删除第i个元素并返回其值intj=1//初始计数器值为1linklistq,P=l//P指向第一个元素节点if(!五十) //表L empty returnerror//delete failed else if(I==1)//删除第一个节点{L=P->next//L从第二个节点开始(更改L)e=P->data//将要删除的节点的值赋给EFREE(P)//删除并释放第一个节点}else{while(P->next&&;ampj<i-1)//找到I节点并将P指向其前体{J//counter 1p=P->next//P指向下一个节点}if(!P->next | J>i-1)//删除位置不合理,returnerror//删除失败q=P->next//q指向要删除的节点P->next=q->next//要删除的节点的前导节点指向要删除的节点的后继节点e=q->data//将节点的值赋给EFREE(q)//释放要删除的节点}returnok//删除成功}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。