我正在尝试编写一个程序,它将从文本文件中读取输入,解析信息,将其放入链表的节点中,然后允许您输入关键字并从列表中获取答案。
我在下面编写了一个应该进行排序插入的函数,并根据字母顺序插入到列表中。
目前,当我在此文本上运行此程序时:
ZEEKS,BOB
GOYLE,FRANK
布朗,詹姆斯SMITH,BILL
EARL,JOE
我得到姓氏的输出:
BROWN
EARL
SMITH
高尔
ZEEKS
以下是我用来尝试进行按字母顺序排列的插入功能:
nodeType *insertNodeNewTest(nodeType *head, nodeType *newNode)
{
nodeType *temp = NULL;
temp = head;
nodeType *prev = NULL;
if(head == NULL)
{
newNode->next = NULL;
head = newNode;
return head;
}
else if(strcmp(newNode->lastname, temp->lastname) < 0) //this
{
puts("car");
newNode->next = temp;
// newNode = head;
head = newNode;
return head;
}
else
{
while(temp != NULL)
{
prev = temp;
temp = temp->next;
if(prev == NULL)
{
printf("prev null");
}
if(strcmp(newNode->lastname, prev->lastname) > 0)
{
prev->next = newNode;
newNode->next = temp;
return head;
}
}
}
temp->next = newNode;
newNode->next = NULL;
return head;
}
我很确定我处理了所有插入的情况(第一个,中间的,最后一个),所以我认为问题是在变量名称的变化中,也许在while循环中?究竟是怎么回事?
我非常感谢你们给予的任何帮助!