Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- typedef struct listelem
- {
- double data;
- struct listelem *next;
- }listelem;
- listelem *beszurElore(listelem *list, double data)
- {
- listelem *uj = (listelem*)malloc(sizeof(listelem));
- uj->next = list;
- uj->data = data;
- printf("beszurva\telore\t%pcimre\t%.1lf\n", uj, data);
- return uj;
- }
- beszurHatulra(listelem *list, double data)
- {
- while(list->next != NULL)
- {
- list = list->next;
- }
- listelem *uj = (listelem*)malloc(sizeof(listelem));
- uj->next = NULL;
- uj->data = data;
- list->next = uj;
- printf("beszurva\thatra\t%pcimre\t%.1lf\n", uj, data);
- }
- listelem *readFile(FILE *file, listelem *list)
- {
- double read;
- while (fscanf(file, "%lf", &read) == 1)
- {
- if (read < 0)
- {
- list = beszurElore(list, read);
- //printf("elore\n");
- }
- if (read > 0)
- {
- if (list == NULL)
- {
- listelem *uj = (listelem*)malloc(sizeof(listelem));
- uj->next = NULL;
- uj->data = read;
- list = uj;
- }
- else
- {
- beszurHatulra(list, read);
- }
- //printf("hatra\n");
- }
- }
- return list;
- }
- void kiirat(listelem *list)
- {
- while (list != NULL) //addig megyünk, amig nem találunk null pointert
- {
- printf("%p\t%lf\n", list, list->data); //kiíratjuk a listaelem cimét és az ott található adatot
- list = list->next; //a következő elemre ugrunk (a következő listaelem, az adott listaelem next adatmezőjével egyezik meg)
- }
- }
- int main()
- {
- FILE *file;
- file = fopen("data.txt","r");
- if (file == NULL)
- {
- printf("File read error");
- return;
- }
- listelem *list1 = NULL;
- list1 = readFile(file, list1);
- fclose(file);
- kiirat(list1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement