#include <math.h> #include <stdio.h> #include<stdlib.h> typedef struct listN * Node; struct listN { int data; Node P; }; Node initList(void); void insert(Node L, int x, int y); void delet(Node L, int x); int main(void) { int n, x, y, i, ret; char op[6]; scanf("%d",&n); Node L, Ptr; L = initList(); for(i = 0; i<n;i++) { ret = scanf("%s %d %d",op,&x,&y); if(ret == 3) { insert(L,x,y); } else { delet(L,x); } } Ptr = L; if(Ptr->P == NULL) { printf("NULL"); } while(Ptr->P) { Ptr = Ptr->P; printf("%d ",Ptr->data); } return 0; } Node initList(void) { Node L; L = (Node)malloc(sizeof(struct listN)); L->data = INFINITY; L->P = NULL; return L; } void insert(Node L, int x, int y) { Node Ptr, NewNode; int flag = 0; for(Ptr = L;Ptr->P != NULL;Ptr = Ptr->P) { if(Ptr->P->data == x) { NewNode = (Node)malloc(sizeof(struct listN)); NewNode->data = y; NewNode->P = Ptr->P; Ptr->P = NewNode; flag = 1; break; } } if(flag == 0) { NewNode = (Node)malloc(sizeof(struct listN)); NewNode->data = y; NewNode->P = NULL; Ptr->P = NewNode; } } void delet(Node L, int x) { Node Ptr, temp; for(Ptr = L; Ptr->P != NULL;Ptr = Ptr->P) { if(Ptr->P->data == x) { temp = Ptr->P; Ptr->P = Ptr->P->P; temp->P = NULL; free(temp); break; } } }