Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #ifndef NULL
- #define NULL ((void*)0)
- #endif
- typedef struct Elem_s {
- char Titel[256];
- char Interpret[256];
- struct Elem_s* next;
- } Elem_t;
- void readfromKeyboard(Elem_t *item) {
- if(item == NULL) {
- perror("Item not allocated!");
- exit(-1);
- }
- printf("Neuer Eintrag:\nTitel\n");
- scanf("%s",item->Titel);
- printf("Interpret\n");
- scanf("%s",item->Interpret);
- item->next=NULL;
- }
- Elem_t *allocateElement() {
- Elem_t* item;
- item=malloc(sizeof(Elem_t));
- readfromKeyboard(item);
- return item;
- }
- Elem_t* insertLast(Elem_t* list) {
- Elem_t* last;
- Elem_t* newitem = allocateElement();
- if(list == NULL) {
- return newitem;
- }
- last = list;
- while(last->next != NULL) {
- last=last->next;
- }
- last->next = newitem;
- return list;
- }
- void freeList(Elem_t** list) {
- Elem_t* last;
- Elem_t* temp;
- if(list == NULL) {
- return;
- }
- last= (*list);
- while(last != NULL) {
- temp= last->next;
- free(last);
- last=temp;
- }
- (*list) = NULL;
- }
- void print_singleElement(Elem_t *element) {
- if(element == NULL) { return; }
- printf("%s\t%s\n",element->Interpret,element->Titel);
- }
- void print_entireList(Elem_t *list) {
- unsigned long i=0;
- while(list != NULL) {
- printf("%lu.",i++);
- print_singleElement(list);
- list=list->next;
- }
- }
- int main() {
- Elem_t* list = insertLast(NULL);
- list=insertLast(list);
- list=insertLast(list);
- print_entireList(list);
- freeList(&list);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement