c语言插入链表问题

相信到这里的人都接触到插入链表了,其实这个函数本身是看得懂的,但是有一点不明白,这个看书是用bool开头的bool insert_list(PNODE pHead,int pos,int val),然后失败返回假成功返回真,我不明白这个真假返回有什么用了,他已经通过pHead指针插入了想要插入的数据为什么还要返回真假呢,我相信大神不会做无用功的
最开始有一个
while(p!=NULL&&i<pos-1)
{
p=p->Next;
i++
}
我觉得应该和删除写的一样就好了啊
while(NULL!=p->Next&&i<pos-1)
为什么删除链表和插入不一样呢

第1个回答  2015-04-21
看这样子应该是尾插,也就是新加入的节点插在链表尾部,所以要找到原来链表的最后一个节点,判定方法就是p->next != NULL啊,至于删除,是找到这个节点,取出他的*next,然后把上一个节点的next指向要删除节点所指向的*next就可以了啊。。至于为什么要返回值,只是一个习惯,如果插入不成功可以看到错误,不然这种编译没有错误,执行有错误最难受了,因为很难找
第2个回答  2015-04-21
首先,返回真和假不是说有问题,而是说是一种编程的习惯,项目里一般叫做错误处理~返回真那就继续运行,假的话就报错退出~顺便把值都free掉~
其次呢,下面的那个while其实就是一个把指针移到头或者尾巴上的函数,没啥删除和插入~如果是两个地方实现的功能是一样的,但是写法不一样~总之没有代码都是猜测~本回答被提问者采纳
相似回答