28.6.2
This commit is contained in:
parent
1ab4aac4ca
commit
14ad2d456d
15
doppsort.c
15
doppsort.c
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user