gpt4 book ai didi

c - 链表实现

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

我正在尝试这个程序,它要求我们以各种方式更改单词。

例如,如果给我们“MISSISSSIPPI”那么输出应该是

MISP(不重复的出现顺序)

ISPM(频率)

IMPS(字母顺序)

我能够执行按字母顺序排列的事情,也可以为出现的顺序编写代码。我能够成功运行按字母顺序排列的函数,但代码在代码块上遇到排序函数时有点挂起。

void ord()
{
current = head1 ;
while(current != NULL)
{
current1 = current -> next ;
while(current1 != NULL)
{
if(current1 -> data == current -> data)
{
free(current1);
current1 = current1 -> next ;
}
else
current1 = current1 -> next ;
}
current = current -> next ;
}
ptr = head1 ;
while(ptr != NULL)
{
printf("%c" , ptr->data) ;
ptr = ptr -> next ;
}
}

在此函数中,current 指向列表的头部,而current one 指向head 的下一个。我递增当前节点并释放具有重复字母表的节点。我的疑问是为什么代码必须停止?还建议一些频率事物的逻辑。

提前致谢

最佳答案

我想问题出在这里。

if(current1 -> data == current -> data)
{
free(current1);
current1 = current1 -> next ;
}

此处您正在释放 current1,然后推进它。

我的建议是你应该使用一个临时指针来保存“current1”的位置,然后将其推进或任何需要的东西。

关于c - 链表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26631057/

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