私は周りを読んでいますが、私はまだリンクされたリストを理解するのに苦労しています。私の問題は、何らかの理由でリストを走査して、リスト内の構造の名前や年齢が同じかどうかを調べるときです。リストを削除するときや、新しいノードをリストに追加しようとしたときにも削除されます。C - リンクされたリストにアルファベット順に新しいノードを挿入
リストは動的なので、どのタイプのカウントにも基づいていませんが、ユーザーが入力することを決めた構造の数です。
いずれの方向にも感謝します。
int add(char* name, char* genderValueString, char* breed, int age, float weight)
{
int result;
int count = 0;
gender curGen = 1;
struct dog *temp = malloc(sizeof(struct dog));
strcpy(temp->name, name);
strcpy(temp->breed, breed);
temp->age = age;
temp->weight = weight;
if (strcmpi(genderValueString, "male") == 0) {
curGen = 0;
}
temp->genderValue = curGen;
if (list == NULL) {
temp->next = list;
list = temp;
result = 1;
}
else {
while (list != NULL) {
if (strcmpi(list->name, name) == 0 && list->age == age) {
result = 0;
}
else {
result = 1;
}
list = list->next;
}
if (result == 1) {
while (list != NULL) {
if (strcmpi(list->name, name) > 0 || list->age > age) {
struct dog *prev = list;
list = temp;
list->next = prev;
}
list = list->next;
}
}
}
return result;
}
ありがとうございますが、私はまだ少し問題があります。リストに何かを追加したいのであれば、それをlist_tmpに追加して、古いリストを一時リストと同じにするか、それとも元のリストに直接追加するだけですか? – poomulus