Upload files to 'P06_Lösung_Andrin'
This commit is contained in:
parent
070f69d499
commit
e54dc6a4d5
|
@ -0,0 +1,83 @@
|
||||||
|
#include "list.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "person.h"
|
||||||
|
|
||||||
|
int addPerson(node_t *coming,node_t *last,person_t *neu) {
|
||||||
|
node_t *p = malloc(sizeof(node_t));
|
||||||
|
if(p == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
last->next = p;
|
||||||
|
p->next = coming;
|
||||||
|
p->content = *neu;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int insert_list(node_t *liste,person_t *neu) {
|
||||||
|
|
||||||
|
node_t *coming = liste->next;
|
||||||
|
node_t *last = liste;
|
||||||
|
|
||||||
|
//falls Liste leer
|
||||||
|
if(coming == liste) {
|
||||||
|
return addPerson(coming,liste,neu);
|
||||||
|
}
|
||||||
|
|
||||||
|
while(coming != liste) {
|
||||||
|
if(person_compare(&coming->content,neu) == 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(person_compare(&coming->content,neu) > 0) {
|
||||||
|
return addPerson(coming,last,neu);
|
||||||
|
}
|
||||||
|
last = coming;
|
||||||
|
coming = coming->next;
|
||||||
|
}
|
||||||
|
return addPerson(coming,last,neu);
|
||||||
|
}
|
||||||
|
|
||||||
|
int remove_list(node_t *liste,person_t *entfernen) {
|
||||||
|
|
||||||
|
node_t *knoten = liste;
|
||||||
|
|
||||||
|
do {
|
||||||
|
node_t *nextKnoten = knoten->next;
|
||||||
|
if(person_compare(entfernen,&nextKnoten->content) == 0) {
|
||||||
|
knoten->next = nextKnoten->next;
|
||||||
|
free(nextKnoten);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
knoten = knoten->next;
|
||||||
|
}
|
||||||
|
while(knoten != liste);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void clear_list(node_t *liste) {
|
||||||
|
|
||||||
|
node_t *knoten = liste->next;
|
||||||
|
node_t *delete;
|
||||||
|
while(knoten != liste) {
|
||||||
|
delete = knoten;
|
||||||
|
knoten = knoten->next;
|
||||||
|
free(delete);
|
||||||
|
}
|
||||||
|
liste->next = liste;
|
||||||
|
}
|
||||||
|
|
||||||
|
void show_list(node_t *liste) {
|
||||||
|
node_t *next = liste->next;
|
||||||
|
|
||||||
|
if(next == liste) {
|
||||||
|
puts("Die Liste ist leer!");
|
||||||
|
}else {
|
||||||
|
while(next != liste) {
|
||||||
|
printf("Name: %s First Name: %s Age: %d\n",next->content.name,next->content.first_name,next->content.age);
|
||||||
|
next = next->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue