Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct node {
- node* next;
- void* value
- } node;
- typedef struct list {
- node* head;
- } list;
- list* createList()
- {
- list* ret = malloc(sizeof(list));
- ret->head = NULL;
- ret->head->next = NULL;
- ret->head->value = NULL;
- return ret;
- }
- list* createList(void* val)
- {
- list* ret = malloc(sizeof(list));
- ret->head = malloc(sizeof(node));
- ret->head->next = NULL;
- ret->head->value = val;
- return ret;
- }
- node* insertValue(list* l, void* val)
- {
- node* iterator = l->head;
- if(l->head->next == NULL)
- {
- node* temp = malloc(sizeof(node));
- temp->next = NULL;
- temp->value = val;
- l->head->next = temp;
- return;
- }
- while(iterator != NULL && iterator->next != NULL)
- {
- iterator = iterator->next;
- }
- node* insert = malloc(sizeof(node));
- insert->next = NULL;
- insert->value = val;
- iterator->next = insert;
- return insert;
- }
- void deleteNode(list* l, void* val)
- {
- node* iterator = l->head;
- node* previous = iterator;
- if(l->head == NULL)
- {
- return;
- }
- if(l->head->next == NULL)
- {
- head->value = NULL;
- free(l->head);
- return;
- }
- while(iterator != NULL && iterator->next != NULL)
- {
- if(iterator->value == val)
- {
- previous->next = iterator->next;
- iterator->next = NULL;
- iterator->value = NULL;
- free(iterator);
- }
- previous = iterator;
- iterator = iterator->next;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement