This commit is contained in:
Daniel Zwanzig 2025-05-16 12:18:00 +02:00
parent 1ab4aac4ca
commit 14ad2d456d

View File

@ -9,7 +9,6 @@ typedef struct eintrag {
struct eintrag *next_tel;
} Eintrag;
// Eintrag in beide Listen einfügen
void einfuegen(Eintrag **kopf_name, Eintrag **kopf_tel, char *name, int tel) {
Eintrag *neu = malloc(sizeof(Eintrag));
@ -18,14 +17,12 @@ void einfuegen(Eintrag **kopf_name, Eintrag **kopf_tel, char *name, int tel) {
neu->next_name = NULL;
neu->next_tel = NULL;
// Einfügen nach Namen sortiert
Eintrag **p = kopf_name;
while (*p && strcmp((*p)->name, name) < 0)
p = &(*p)->next_name;
neu->next_name = *p;
*p = neu;
// Einfügen nach Telefonnummer sortiert
p = kopf_tel;
while (*p && (*p)->telefon < tel)
p = &(*p)->next_tel;
@ -33,7 +30,6 @@ void einfuegen(Eintrag **kopf_name, Eintrag **kopf_tel, char *name, int tel) {
*p = neu;
}
// Ausgabe nach Namen sortiert
void liste_name_ausgeben(Eintrag *kopf) {
printf("\n...Liste nach Namen sortiert...\n");
while (kopf) {
@ -42,7 +38,6 @@ void liste_name_ausgeben(Eintrag *kopf) {
}
}
// Ausgabe nach Telefonnummer sortiert
void liste_tel_ausgeben(Eintrag *kopf) {
printf("\n...Liste nach Telefonnummer sortiert...\n");
while (kopf) {
@ -51,11 +46,10 @@ void liste_tel_ausgeben(Eintrag *kopf) {
}
}
// Speicher am Ende freigeben
void speicher_freigeben(Eintrag *kopf) {
Eintrag *temp;
while (kopf) {
temp = kopf->next_name; // nur eine Liste reicht zum Freigeben
temp = kopf->next_name;
free(kopf);
kopf = temp;
}
@ -76,8 +70,8 @@ int main() {
printf("A - Ausgeben der Liste\n");
printf("E - Ende\n");
printf("Deine Wahl:");
scanf(" %c", &wahl);
getchar(); // '\n' entfernen
scanf("%c", &wahl);
getchar();
switch (wahl) {
case 'N':
@ -85,7 +79,7 @@ int main() {
while (1) {
printf("Name:");
fgets(name, sizeof(name), stdin);
name[strcspn(name, "\n")] = 0; // Zeilenumbruch entfernen
name[strcspn(name, "\n")] = 0;
if (strlen(name) == 0)
break;
@ -114,7 +108,6 @@ int main() {
}
} while (wahl != 'E' && wahl != 'e');
// Speicher aufräumen
speicher_freigeben(kopf_name);
return 0;