如果L.elem为0(或NULL之类可以表示0值的东西),则终止当前函数,并返回ERROR,ERROR应该是在前面定义的一个宏
如果L.elem为零,返为结束码ERROR
这句是检测存储空间有没有成功分配,如果没有得到分配,就终止程序返回 OVERFLOW
exit(0)这个函数是结束程序的意思。一般函数用return返回上一级函数,主函数用return则返回操作系统,也就是程序终止运行。但这个函数可以直接跃过很多层直接回到操作系统。不建议用这个东西
只是判断l中的数据成员elem是否为0,为0即执行if下面语句
if(!L.elem) //分配失败,L.elem将为null,(!)取非就是非null,也就是条件为真,则执行下面的语句;exit(OVERFLOW); // 直接退出进程,返回错误代码OVERFLOW 给操作系统
如果elem为空则返回OK,否则返回OVERFLOW
如果创建失败 那么L.elem =NULL !L.elem 就为真 ,那就执行 return ok;当然返回ok了
不是取I得值,因为是双向链表,而不是顺序存储,顺序存储插入的时候 可以直接取地址,而链表在插入的时候 要从链表头指针开始找,那条语句就是个查找I位置的语句,意思是找到I就把P指向i,如果不存在i,就返回错误。因为只有用P指向i,才能对链表进行修改,具体有5个赋值语句,可以看书上。
如果 L.elem 为空(或0) 则返回False 否则 设置 L.length 为0,L.listsize = 最大Size