将节点添加到链表时遇到问题。应该按字母顺序添加它们,但是无法将第一个元素添加到列表中。
Local insert_place(Place first, char* string){
Place n = create_place();
Place aux = first;
if(n==NULL)
return NULL;
while((aux->abcnext!=NULL)&&(strcmp(aux->abcnext->place, string)<0))
aux = aux->abcnext;
n->place= malloc(strlen(string)+1);
strcpy(n->place, string);
n->abcnext= aux->abcnext;
aux->abcnext = n;
}
Place create_place(){
Place aux;
aux=(Place)malloc(sizeof(place_node));
if (aux!=NULL){
aux->place=malloc(25*sizeof(char));
aux->abcnext=NULL;
}
return aux;
}
typedef struct placenode*Place;
typedef struct placenode{
char *place;
Place abcnext;
}place_node;
我的结果是:假设您有4个字符串-“ P”,“ Z”,“ W”,“ L”。我第一次打印时只打印垃圾。第二次打印垃圾,然后按字母顺序打印最低的字符串,依此类推。