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