Pagini recente » Cod sursa (job #2841189) | Cod sursa (job #2018733) | Cod sursa (job #2024861) | Profil MihaelaCismaru | Cod sursa (job #1534056)
#include <stdio.h>
#include <stdlib.h>
struct node{
unsigned long value;
node *urm;
}*START,*END;
void DELETE(node *&START,node *&END,unsigned long value){
node *x,*C;
if(START->value==value){
x=START;
START=START->urm;
}
else{
C=START;
while(C->urm&&C->urm->value!=value)
C=C->urm;
if(C->urm!=NULL){
x=C->urm;
C->urm=x->urm;
}
}
}
bool SEARCH(node *START,unsigned long value){
while(START){
if(START->value==value)
return 1;
START=START->urm;
}
return 0;
}
void ADD(node *&START,node *&END,unsigned long value){
if(!SEARCH(START,value)){
if(START){
END->urm=(node*)malloc(sizeof(node));
END=END->urm;
END->value=value;
END->urm=NULL;
}else{
START=NULL;
START=(node*)malloc(sizeof(node));
START->value=value;
START->urm=NULL;
END=START;
}
}
}
int main(){
unsigned long n,x; unsigned op;
FILE*f=fopen("hashuri.in","r");
FILE*g=fopen("hashuri.out","w");
fscanf(f,"%lu",&n);
while(n--){
fscanf(f,"%u %lu",&op,&x);
switch(op){
case 1: ADD(START,END,x); break;
case 2: DELETE(START,END,x); break;
case 3: fprintf(g,"%u\n",SEARCH(START,x)); break;
}
}
fclose(f);
fclose(g);
return 0;
}