Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Modify this file
- // compile with: gcc linkedlist.c -o linkedlist
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct node {
- int data;
- struct node* next;
- }node_t;
- node_t* list;
- void create_list() {
- system("./data.sh");
- node_t* head = (node_t*)malloc(sizeof(node_t));
- FILE * fp;
- char * line = NULL;
- size_t len = 0;
- ssize_t read;
- fp = fopen("data.txt", "r");
- if (fp == NULL)
- exit(EXIT_FAILURE);
- node_t* prev = head;
- node_t* current = NULL;
- while ((read = getline(&line, &len, fp)) != -1) {
- current = (node_t*)malloc(sizeof(node_t));
- current->data = atoi(line);
- current->next = NULL;
- prev->next = current;
- prev = current;
- current = NULL;
- }
- fclose(fp);
- if (line)
- free(line);
- list = head;
- }
- void print_list() {
- node_t* tmp = list;
- while(tmp != NULL) {
- printf("%d\n", tmp->data);
- tmp = tmp->next;
- }
- }
- void free_list() {
- node_t *tmp = list->next;
- node_t *freed = list;
- while(tmp != NULL) {
- free(freed);
- freed = tmp;
- tmp = tmp->next;
- }
- free(freed);
- }
- int main(){
- create_list();
- print_list();
- free_list();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement