gpt4 book ai didi

c - 拆分循环链表

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:37 24 4
gpt4 key购买 nike

所以我在本周早些时候遇到了一个关于数据结构分配的问题。问题是将一个循环链表分成两半,一个列表中的偶数位置的元素和另一个列表中的奇数位置的元素。这是我尝试过的逻辑。

temp= p1 = front;
p2= front->next;
do
{p1->next = temp->next->next;
p1= temp->next->next;
p2->next = temp->next->next->next;
p2= temp->next->next->next;
temp=temp->next;
} while (temp!= front);
p1->next=p1;
p2->next=p2;

我的逻辑是创建两个指针,一个指向第一个元素,一个指向下一个元素。然后我从一端到另一端遍历列表。在这样做的同时,我将每个指针的下一个指针设置为指向交替位置的元素。请注意,p1、p2、front、temp 和 next 是 struct Node 的指向定义为这个

  typedef struct 
{
type element;
Node* next;
}Node;

但是我的教授在没有任何解释的情况下将我的答案标记为错误。谁能告诉我为什么这是错误的?

最佳答案

假设一开始 temp 指向一个奇数位置,所以 p1 指向奇数而 p2 指向偶数元素但是在第一个 temp=temp->next temp 指向一个偶数元素,当您将 p1 指定为 p1-temp->next->next 时,它是一个偶数元素,现在 p2 将指向奇数位置元素。在每次交替迭代中,p1 将指向偶数位置和其他偶数位置,p2.

关于c - 拆分循环链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com