函数实现单链表的删除算法,请在空格处将算法补充完整。int ListDelete(LinkList L,int i,ElemType *s){LNode *p,*q;int j;p=L;j=0;while(((1) )&&(jnext;j++;}if(p->next==NULL
j>i-1) return ERROR;q=p->next; (2);*s=q->data;free(q);return OK;}/*listDelete*/
j>i-1) return ERROR;q=p->next; (2);*s=q->data;free(q);return OK;}/*listDelete*/
j>i-1) return ERROR; s=(LNode *)malloc(sizeof(LNode)); s->data=e; (1) ; (2); return OK;}/*ListInsert*/
j>i)return ERROR;*e= (2) ;return OK;}
以下为单链表的删除运算,分析算法,请在______处填上正确的语句。
void delete_lklist(1klist head,int i)
{ p=find_lklist(head,i-1);
if(______)
{ q=______;
p—>next=q—>next;
free(q);
}
else error("不存在第i个结点")
}
函数slnklist delx(linklist head, datatype x),该算法实现删除带头结点单链表head中第一个值为x 的结点,请选择合适的选项填入空缺处,使算法完整。 用C语言描述单链表结点的结构如下: typedef int datatype; typedef struct link_node{ datatype info; struct link_node *next; }node; typedef node *linklist; del函数定义如下: linklist delx(linklist head,datatype x) { linklist pre,p; //pre指向待删除结点的前驱 pre=head; (1) ; while (p &&p->info!=x) //找到第一个info为x的结点 { (2) ; } if (p) { (3) ; } return head; }
A、(1) p=head->next;
B、(1) p=head;
C、(2) pre=p; p=p->next;
D、(2) p=p->next;pre=p;
E、(3)pre->next=p->next;free(p);
F、(3)p=p->next;pre->next=p;free(p);
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!