All pastes #467988 Raw Edit

Absurd-Mind

public c v1 · immutable
·published 2007-05-02 20:50 UTC
rendered paste body
/* * Daniel, 	Danner, 	sidadann,	Inf. Dipl.; * Peter, 	Kranz, 		sipekran,	Inf. Dipl.; */#include <stdlib.h>#include <stdio.h>/* * Struct definieren welches fuer die liste verwendet wird */struct Element {	int number;	struct Element *next;};/* * zwei pointer fuer den anfang und ende der List */struct Element *head;struct Element *tail;void append_element(int value) {	/*	 * einen temporaeren pointer erstellen allozieren und 	 * die value aus der signatur darin speichern	 */	struct Element *temp;	temp = (struct Element *) malloc(sizeof(struct Element));	if (temp == NULL) {		perror("malloc: Kein Speicher verfuegbar!");		exit(2);	}	temp->number = value;		/*	 * wenn es noch keinen Kopf gibt, temp als kopf setzen	 * und darausfolgend tail auch	 */	if (head == NULL) {		head = temp;		tail = temp;		return;	}	/*	 * andernfalls temp an letzte position anhaengen	 * und tail umsetzen	 */	tail->next = temp;	tail = tail->next;}int remove_element() {	/*	 * zwischenvariablen	 */	int returnValue;	struct Element *temp;	/*	 * wenn es keine elemente gibt, wie gefordert -1	 * zurueckgeben	 */	if (head == NULL) {		return -1;		}		/*	 * ansonsten das erste element, und dessen Wert	 * zwischenspeichern, head weitersetzen und Speicher	 * freigeben	 */	temp = head;	returnValue = head->number;	head = head->next;	free(temp);	/*	 * sollte der Kopf leer sein muss tail auch leer sein	 * => tail auf Null setzen	 *	 * abschliessend geloeschten Wert zurueckgeben	 */	if (head == NULL) {		tail = NULL;	}	return returnValue;}int main() {	append_element(47);	append_element(11);	append_element(42);	printf("remove: %d\n", remove_element());	printf("remove: %d\n", remove_element());	printf("remove: %d\n", remove_element());	printf("remove: %d\n", remove_element());	append_element(13);	printf("remove: %d\n", remove_element());	return 0;}