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