我有一个结构体,包含一个名称和一个名为nextName的单个节点。
这是一个单向链表,我的任务是根据字符串的字母顺序创建列表。
因此,如果我输入Joe、Zolt和Arthur,我的列表应该如下所示:
Joe
然后
Joe Zolt
然后
Arthur Joe Zolt
我在实现正确算法时遇到了麻烦,它会将指针放在正确的顺序中。
这是我目前的实现。Temp是用户刚刚输入并尝试放入列表的名称,namebox只是我的根的副本,即整个列表。
if(temp != NULL)
{
struct node* namebox = root;
while (namebox!=NULL && (strcmp((namebox)->name,temp->name) <= 0))
{
namebox = namebox->nextName;
printf("here");
}
temp->nextName = namebox;
namebox = temp;
root = namebox;
目前这段代码可以正常工作,如果我输入的名字是 CCC BBB 那么 AAA 就会排在后面。
但是当我输入 AAA BBB CCC 时,打印输出时只有 CCC 被输出,它截断了前面的。
编辑:
能否有人展示一下代码应该长什么样子?我自己写不出来。