首先要求将该表倒置,并不占用新的空间。
有两条思路:一,将表中的各个元素指针依次翻转,指向前一个元素,并将头指针指向NULL,尾指针指向倒数第二个元素。二,先形成循环表,再将循环表中的尾指针所在元素改为头指针,将第一个元素的指针,改为指向NULL。(这里的头指针不是第一个元素所在地址,表述不准确,见谅)
第一条思路如下
void ReviseList(LinkList &head){
LinkList p,q,pr;
p = head->next;
q = NULL;
head->next = NULL;
while(p){
pr = p->next;
p->next = q;
q = p;
p = pr;
}
head->next = q;
}
先将目标顺序表的地址传入函数,并用p接受表中的第二个元素,也就是第一个数据所在地址,再将这个数据地址改为NULL,接下来用一个while循环,依次将表中的元素改为指向前一个数据。直到尾指针改为头结点。
522

被折叠的 条评论
为什么被折叠?



