数据结构算法问题voed BB(LNode *s,LNode *q) {p=s;while(p->next!=q) p=

数据结构算法问题
voed BB(LNode *s,LNode *q) {
p=s;
while(p->next!=q) p=p->next;
p->next=s;
}
void AA(LNode *pa,LNode *pb) {
//pa和pb分别指向单循环链表中的两个结点
BB(pa,pb);
BB(pb,pa);
}
将单循环链表折成两个单循环链表.
这是怎么算的啊,本人愚笨不懂,一步步讲,一定采纳的.
aileenyh002 1年前 已收到1个回答 举报

COOL阿虫 春芽

共回答了20个问题采纳率:80% 举报

void BB(LNode *s,LNode *q) {
p=s;
while(p->next!=q) p=p->next;//此处while语句的作用是寻找q节点的前一个节点
p->next=s;//while语句结束后,将s节点至q的前一个节点连接成单循环链表
}//综上:上述BB()函数的作用是s节点至q节点前一个节点连成单链表
void AA(LNode *pa,LNode *pb) {
//pa和pb分别指向单循环链表中的两个结点
BB(pa,pb);//将pa与pb前一个节点连接成单循环链表
BB(pb,pa);//将pb与pa前一个节点连接成单循环链表
}//原链表是循环的,上述两链表连接后原链表被分成了两个单循环链表
注:
1、先理解BB函数的功能,然后在纸张画一张草图帮助理解
2、题目中BB()函数的声明写错了,应该是void 不是voed

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.023 s. - webmaster@yulucn.com