以下为单链表的删除运算,分析算法,请在______处填上正确的语句。 void delete_lklist(1klist hea
以下为单链表的删除运算,分析算法,请在______处填上正确的语句。
void delete_lklist(1klist head,int i)
{ p=find_lklist(head,i-1);
if(______)
{ q=______;
p—>next=q—>next;
free(q);
}
else error("不存在第i个结点")
}
以下为单链表的删除运算,分析算法,请在______处填上正确的语句。
void delete_lklist(1klist head,int i)
{ p=find_lklist(head,i-1);
if(______)
{ q=______;
p—>next=q—>next;
free(q);
}
else error("不存在第i个结点")
}
以下为单链表的插入运算,分析算法,请在______处填上正确的语句。
void insert_lklist(lklist head,datatype x,int i)
/*在表head的第i个位置上插入一个以x为值的新结点*/
{ p=find_lklist(head,i-1);
if(p==NULL)error("不存在第i个位置");
else{s=______;s—>data=x;
s—>next=______;
p—>next=s;
}
}
以下为单链表的建表算法,分析算法,请在______处填上正确的语句。
lklist create_iklist2() /*直接实现的建表算法。*/
{ head=malloc(size);
p=head;
scanf("%",&x);
while(X!='$')
{ q=malloc(size);
q—>data=x;
p—>next=q;
______;
scanf("%",&x);
}
______;
return(head);
}
此算法的量级为______。
以下为单链表的建表算法,分析算法,请在______处填上正确的语句。
lklist create_1klistl()
/*通过调用intiate_lklist和insetr_lklist算法实现的建表算法。假定$是结束标志*/
{ ininiate_lklist(head);
i=1;
scanf("%",&x);
while(x!=$)
{______;
______;
scanf("%f",&x);
}
return(head);
}
该建表算法的时间复杂性约等于______,其量级为______。
以下为求单链表表长的运算,分析算法,请在______处填上正确的语句。
int length_lklist(lklist head) /*求表的长度。 */
{______;
j=0;
while(p—>next!=NULL)
{______;
j++;}
return(j);
} /*回传表长*/
以下为顺序表的插入运算,分析算法,请在______处填上正确的语句。
void insert_sqlist(sqlist L,datatype x,int i)/*将X插人到顺序表L的第i-1个位置*/
{ if(L.1ast==maxsize)error("表满");
if((i<1)||(i>L.last+1))error("非法位置");
for(j=L.last;j≥i;j--)
L.data[i-]=X;
L.last=L.last+1;
}