#include #include typedef struct node_list { int data; struct node_list* next; }List_Node; typedef struct list { List_Node* head; }List; List* create_list() { List* list = (List*)malloc(sizeof(List)); list->head = NULL; return list; } void print_list(List_Node* list) { List_Node* temp = list; printf("\n*"); while(temp != NULL) { printf(" %d *", temp->data); temp = temp->next; } printf("\n"); free(temp); } int is_empty(List* list) { if(list->head == NULL) return 1; return 0; } List_Node* find(int val, List* list) { List_Node *x = list->head; while(x != NULL && x->data != val) x=x->next; return x; } void insert_first(List_Node* x,List* list) { x->next=list->head; list->head = x; } void delete_first(List* list) { List_Node *temp; if(is_empty(list)) { printf("ERROR!"); return; } temp = list->head; list->head = list->head->next; free(temp); } void delete_member(List_Node* x, List* list) { List_Node* y; if(x == list->head) delete_first(list); else { y=list->head; while(y->next != x) y=y->next; y->next = x->next; free(x); } } void main() { List_Node *member; List* head = create_list(); int arr[7]={6,4,3,8,65,90,5},i,ans,num; for(i=0 ; i<7 ; i++) { member = (List_Node*)malloc(sizeof(List_Node)); member->data = arr[i]; insert_first(member ,head); } printf("The list is --->\n"); print_list(head->head); printf("Do you like to add members to the list? (yes - 1 / no - 0) --> "); scanf("%d",&ans); while(ans == 1) { member = (List_Node*)malloc(sizeof(List_Node)); printf("what number you like to add to the list ? --> \n"); scanf("%d",&member->data); insert_first(member ,head); printf("The list is --->\n"); print_list(head->head); printf("do you like to add another member to the list ? (yes - 1 / no - 0) --> "); scanf("%d",&ans); } printf("Do you like to delete members ? (yes - 1 / no - 0) --> "); scanf("%d",&ans); while(ans == 1) { printf("what member do you like to delete ? --> \n"); scanf("%d",&num); delete_member(find(num,head),head); print_list(head->head); printf("do you like to delete another member from the list ? (yes - 1 / no - 0) --> "); scanf("%d",&ans); } }