求数据结构大虾们指导:以下这个算法有什么功能?3. 简述以下算法的功能: void BB(LNode *s, LNode *q ) {   p =s ;  while (p->next!=q) p =p->next ;  p->next =s;} //BBvoid AA(LNode *pa, LNode *pb) {// pa 和 pb

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 03:33:02
求数据结构大虾们指导:以下这个算法有什么功能?3. 简述以下算法的功能: void BB(LNode *s, LNode *q ) {   p =s ;  while (p->next!=q) p =p->next ;  p->next =s;} //BBvoid AA(LNode *pa, LNode *pb) {// pa 和 pb
xn@_es =BR窯PHUbJV*Y!@hO$HƁC [L[mV%<<ζX^p5rgXNn֐{ݣwr k4j( *sogӴs-ۮӃvE";}0꬝:>lÀA= utY(? O1i[RL*ewM0t&ܰ 3ݶ$SB 0̔0^H=bT9{BG1-zP&NB}FE䊓SkUr#6Qy\ŀ󹁙)UfKSd0_ ѴhPD:WIQfJg )&%U}x=qB5BvqU@v9$sMb+)

求数据结构大虾们指导:以下这个算法有什么功能?3. 简述以下算法的功能: void BB(LNode *s, LNode *q ) {   p =s ;  while (p->next!=q) p =p->next ;  p->next =s;} //BBvoid AA(LNode *pa, LNode *pb) {// pa 和 pb
求数据结构大虾们指导:以下这个算法有什么功能?
3. 简述以下算法的功能:
void BB(LNode *s, LNode *q )
{
  p =s ;
  while (p->next!=q) p =p->next ;
  p->next =s;
} //BB
void AA(LNode *pa, LNode *pb)
{// pa 和 pb 分别指向单循环链表中的两个结点
  BB(pa, pb);
  BB(pb, pa);
} //AA
此算法的功能为:__________________

求数据结构大虾们指导:以下这个算法有什么功能?3. 简述以下算法的功能: void BB(LNode *s, LNode *q ) {   p =s ;  while (p->next!=q) p =p->next ;  p->next =s;} //BBvoid AA(LNode *pa, LNode *pb) {// pa 和 pb
首先你清楚什么是循环链表吧!
比如说一根绳子,收尾连在一起,就是一个圆圈了,对吧!
这个圆圈上有两个点,一个s,一个q,然后用剪刀在q点之前剪断,剪断后再连接到s点,自己想象一下这跟绳子变成什么效果了,是不是好像蝌蚪形状了.这个就是AA里面的第一个BB函数的功能.
AA里面的第二个BB函数功能,就是将蝌蚪的尾巴截断,再绕成一个圈.于是就变成两个圈了,也就是两个循环链表.
所以,AA的功能就是将一个循环链表变成两个循环链表,BB的功能就是将链表中的节点截断并形成一个新的小的循环链表.