#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct List
{
char s[35];
struct List *next;
}List;
void insert(List *l,int num,char name[])
{
int temp = 1,i = 0;
List *p,*q;
q = (List *)malloc(sizeof(List));
for(i = 0;i < strlen(name);i ++)
{
q->s[i] = name[i];
}
q->s[i] = 0;
//printf("q = %s\n",q->s);
q -> next = NULL;
p = l;
while(p->next != NULL && temp != num)
{
p = p ->next;
temp ++;
}
q->next = p->next;
p->next = q;
}
void dele(List *l,char name[])
{
List *p,*q;
p = l;
while(p->next != NULL)
{
if(strcmp(p->next->s,name) == 0)
break;
p = p->next;
}
q = p->next;
p->next = p->next->next;
free(q);
}
void show(List *l)
{
List *p;
p = l;
while(p->next != NULL)
{
if(p->next->next != NULL)
printf("%s ",p->next->s);
else
printf("%s\n",p->next->s);
p = p->next;
}
}
void search(List *l,char name[])
{
int n = 1;
List *p;
p = l;
while(p->next != NULL)
{
if(strcmp(p->next->s,name) == 0)
{
printf("%d\n",n);
break;
}
p = p->next;
n ++;
}
}
int main()
{
char order[10],name[35];
int num;
List *l = (List*)malloc(sizeof(List));
l->next = NULL;
while(scanf("%s",order) != EOF)
{
//printf("order = %s\n",order);
if(strcmp(order,"insert") == 0)
{
scanf("%d",&num);
//printf("num = %d\n",num);
getchar();
scanf("%s",name);
//printf("name = %s\n",name);
insert(l,num,name);
//printf("%s\n",l->next->s);
}
else if(strcmp(order,"delete") == 0)
{
scanf("%s",name);
dele(l,name);
}
else if(strcmp(order,"search") == 0)
{
scanf("%s",name);
search(l,name);
}
else if(strcmp(order,"show") == 0)
{
show(l);
}
}
return 0;
}
/**************************************************************
Problem: 2137
User: admin
Language: C
Result: Accepted
Time:19 ms
Memory:1148 kb
****************************************************************/