数据结构与算法–链表的高效插值
刚刚学习了数据结构的链表结构,其中用C语言打的insert_list函数花了很长的时间,很有感触,在这里分享下。
//插入--高效
bool insert_list(PNODE pHead,int pos,int val) //pos>=1
{
int i = 0;
PNODE p = pHead;
while (NULL != p && i<pos-1)
{
p = p->pNext;
i++;
}
if(i>pos-1||NULL == p)
return false;
PNODE pnew = (PNODE)malloc(sizeof(NODE));
if (NULL == pnew)
{
printf("fail");
exit(-1);
}
pnew -> data = val;
PNODE q = p->pNext;
p->pNext = pnew;
pnew -> pNext = q;
return true;
}
后面又四行对于新手很不友好,但是画图可以很直观的看出其中的实现方式,我们令四个式子为1,2,3,4