Cod sursa(job #714773)

Utilizator danieladDianu Daniela danielad Data 16 martie 2012 09:01:41
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include<iostream>
#include<fstream>
using namespace std;
const int m=666667;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
struct nod{
	int inf;
	nod *adr;
};
nod *T[m];
int n;
int hash(int k){
	return k%m;
}
void cauta(int k){
	int j=hash(k);
	nod *aux;
	aux=T[j];
	while(aux!=NULL){
		if(aux->inf==k){
			g<<"1\n";
			return ;
		}
		else
			aux=aux->adr;
	}
	g<<"0\n";
}
void insert(int k){
	int j=hash(k);
	nod *aux=new nod;
	aux->inf=k;
	aux->adr=T[j];
	T[j]=aux;
}
void sterge(int k){
	int j=hash(k);
	if(T[j]==NULL)
		return;
	nod *aux;
	aux=T[j];
	if(aux->inf==k){
		T[j]=T[j]->adr;
		delete aux;
		return ;
	}
	while(aux->adr!=NULL){
		if((aux->adr)->inf==k){
			nod *q=aux->adr;
			aux->adr=(aux->adr)->adr;
			delete q;
			return ;
		}
			aux=aux->adr;
	}
}
int main(){
	int x;
	short int op;
	f>>n;
	for(int i=1;i<=n;i++){
		f>>op>>x;
		if(op==1)
			insert(x);
		if(op==2)
			sterge(x);
		if(op==3)
			cauta(x);
	}
	
	return 0;
}