1.4.4 几种变形链表 1.循环链表:让线性链表最后一个结点指针指向第一个结点
head 头指针 head 判空条件:head = = NULL; 头:p ==head && head
=^ 尾:p ->lin k==head&&head
=^ 2.带表头结点链表:附加结点不链表中结点,它提供一定特殊信息,便于链表操作
head head 判空条件:head->lin k==NULL 或 p -lin k ==NULL&&p ->data==” 特殊值” ; 头:p ==head->lin k&&head->lin k
=NULL 尾:p ->lin k==NULL&&head->lin k
=NULL 3.带表头的循环链表 head head 判空条件:(head = = head->lin k) 或 p ->lin k ==head && p ->data==” 特殊值” 头:head->lin k
=NULL&& p ==head->lin k 尾:p ->lin k==head&&head->lin k
=NULL 循环链表的应用: A(x )=8X60-6X50+4X25+2X10 B(x )=7x 60+6x 50+3x 20 C(x )=15x 60+4x 25+3x 20+2x 10 - ^ // ^ //^ // // ah p a // -1 8 60 6 50 4 25 2 10bh p b // -17 60 -6 50 ch p c ///15 50 4 25 3 20 2 10 3 20 算法:NODE *insert ( pc , c , e ) /* 将一个新结点 t ,挂在 pc 后面 */ NODE *pc ; int c , e ; { NODE *t ; t = ( NODE *) malloc (sizeof (NODE));