コード例 #1
0
ファイル: lista.c プロジェクト: origds/Proy1Chat
/* Funcion: insertarAux
 * Descripcion: Inserta en la lista auxiliar de un usuario/sala
 * Parametro: Lista * lista: lista en la que se buscara inicialmente
 *            char * nombreppal: nombre a buscar e insertar en su lista asociada
 *            char * nombreaux: nombre a ser introducido en la lista auxiliar
 *            int fd: fildescriptor del usuario en caso de estar introduciendo
 *                    un usuario a una sala
 * Retorna: -1 en caso de error
 *          0 en caso satisfactorio
 */
int insertarAux(Lista *lista, char * nombreppal, char * nombreaux, int fd){
  Elemento *elem;
  Lista * nueva;

  if(lista->tam == 0)
    return -1;

  elem = lista->ini;
  while(elem!=NULL){
    if(strcmp(elem->nombre,nombreppal)==0){
      if (elem->lista == NULL){
        nueva = (Lista *) malloc (sizeof(Lista));
        nuevaLista(nueva);
        elem->lista = nueva;
        return insertar(nueva, nombreaux, fd, NULL);
      }
      else{
        if(buscarPpal(elem->lista,nombreaux)!=0)
          return insertar(elem->lista,nombreaux, fd, NULL);
        return -1;
      }
    }
    else{
      elem = elem->sig;
    }
  }
  return -1;
}
コード例 #2
0
ファイル: arnau.c プロジェクト: guinii/P2_EDA
void insertar(struct alumno alum, struct nodo *ptr){
    if(ptr == NULL){
        insertarnodo(alum,ptr,IZQ);
        return;
    }
    if(alum.nia < ptr->a.nia ){
        if(ptr->izquierda==NULL){
            insertarnodo(alum, ptr,IZQ);
            return;
        }else{
            insertar(alum, ptr->izquierda);
        }
    }
    if(alum.nia > ptr->a.nia){
        if(ptr->derecha==NULL){
            insertarnodo(alum,ptr,DER);
            return;
        }else{
            insertar(alum, ptr->derecha);
        }
    }
    if( alum.nia == ptr->a.nia){
        //printf("Alumno ya existente\n");
        return;
    }
    
}
コード例 #3
0
void VbExporter::segun(t_output &prog, list<t_proceso_it> its, string tabs){
	list<t_proceso_it>::iterator p,q,r;
	q=p=its.begin();r=its.end();
	t_proceso_it i=*q;
	insertar(prog,tabs+"Select Case "+expresion((*i).par1));
	++q;++p;
	while (++p!=r) {
		i=*q;
		if ((*i).par1=="DE OTRO MODO")
			insertar(prog,tabs+"Case Else");
		else {
			string e="Case "+expresion((*i).par1);
			bool comillas=false; int parentesis=0, j=0,l=e.size();
			while(j<l) {
				if (e[j]=='\''||e[j]=='\"') comillas=!comillas;
				else if (!comillas) {
					if (e[j]=='['||e[j]=='(') parentesis++;
					else if (e[j]==']'||e[j]==')') parentesis--;
					else if (parentesis==0 && e[j]==',') {
						e.replace(j,1,", "); l+=6;
					}
				}
				j++;
			}
			insertar(prog,tabs+e);
		}
		bloque(prog,++i,*p,tabs+"\t");
		++q;
	}
	insertar(prog,tabs+"End Select");
}
コード例 #4
0
void MatLabExporter::paracada(t_output &out, t_proceso_it r, t_proceso_it q, string tabs){
	string var=ToLower((*r).par2), aux=ToLower((*r).par1);
	const int *dims=memoria->LeerDims(var);
	if (!dims) { insertar(out,string("ERROR: ")+var+" NO ES UN ARREGLO"); return; }
	int n=dims[0];
	
	string *auxvars=new string[n];
	for(int i=0;i<n;i++) auxvars[i]=get_aux_varname("aux_index_");
	
	string vname=var, sep="(";
	for(int i=0;i<n;i++) { 
		string idx=auxvars[i];
		insertar(out,tabs+"for "+idx+"=1:size("+var+","+IntToStr(i+1)+")");
		vname+=sep+idx; sep=",";
		tabs+="\t";
	}
	vname+=")";
	
	for(int i=n-1;i>=0;i--) release_aux_varname(auxvars[i]);
	delete []auxvars;
	
	t_output aux_out;
	bloque(aux_out,++r,q,tabs);
	replace_var(aux_out,aux,vname);
	insertar_out(out,aux_out);
	for(int i=0;i<n;i++) { 
		tabs.erase(tabs.size()-1);
		insertar(out,tabs+"end");
	}
}
コード例 #5
0
void cambio (pagina *p,pagina *q,pagina *r,int i,int x)
{
	int k,t;

	if (x > r->info [r->cont - 1]) {
		t = q->info [i];
		retirar (q,i);
		k = 0;
		insertar (p,t,&k);
		t = r->info [r->cont - 1];
		retirar (r, r->cont - 1);
		k = i;
		if (k == -1)
			k = 0;
		insertar (q,t,&k);
	}
	else {
		t = q->info [i];
		retirar (q, i);
		k = p->cont - 1;
		if (k == -1)
			k = 0;
		insertar (p,t,&k);
		t = r->info [0];
		retirar (r, 0);
		k = i;
		if (q->cont != 0)
			if (k > q->cont - 1)
				k = q->cont -1;
		insertar (q,t,&k);
	}
}
コード例 #6
0
void MatLabExporter::segun(t_output &prog, list<t_proceso_it> its, string tabs){
	list<t_proceso_it>::iterator p,q,r;
	q=p=its.begin();r=its.end();
	t_proceso_it i=*q;
	insertar(prog,tabs+"switch "+expresion((*i).par1));
	++q;++p;
	while (++p!=r) {
		i=*q;
		if ((*i).par1=="DE OTRO MODO")
			insertar(prog,tabs+"otherwise");
		else {
			string e=expresion((*i).par1); int en=1;
			bool comillas=false; int parentesis=0, j=0,l=e.size();
			while(j<l) {
				if (e[j]=='\''||e[j]=='\"') comillas=!comillas;
				else if (!comillas) {
					if (e[j]=='['||e[j]=='(') parentesis++;
					else if (e[j]==']'||e[j]==')') parentesis--;
					else if (parentesis==0 && e[j]==',') {
						e.replace(j,1,","); l+=5; en++;
					}
				}
				j++;
			}
			if (en>1) e=string("{")+e+"}";
			insertar(prog,tabs+"case "+e);
		}
		bloque(prog,++i,*p,tabs+"\t");
		++q;
	}
	insertar(prog,tabs+"end");
}
コード例 #7
0
void VbExporter::repetir(t_output &prog, t_proceso_it r, t_proceso_it q, string tabs){
	insertar(prog,tabs+"Do");
	bloque(prog,++r,q,tabs+"\t");
	if ((*q).nombre=="HASTAQUE")
		insertar(prog,tabs+"Loop Until "+expresion((*q).par1));
	else
		insertar(prog,tabs+"Loop While "+expresion((*q).par1));
}
コード例 #8
0
void VbExporter::para(t_output &prog, t_proceso_it r, t_proceso_it q, string tabs){
	string var=expresion((*r).par1), ini=expresion((*r).par2), fin=expresion((*r).par3), paso=(*r).par4;
	if (paso=="1")
		insertar(prog,tabs+"For "+var+"="+ini+" To "+fin);
	else
		insertar(prog,tabs+"For "+var+"="+ini+" To "+fin+" Step "+expresion(paso));
	bloque(prog,++r,q,tabs+"\t");
	insertar(prog,tabs+"Next "+var);
}
コード例 #9
0
void MatLabExporter::para(t_output &prog, t_proceso_it r, t_proceso_it q, string tabs) {
	string var=expresion((*r).par1), ini=expresion((*r).par2), fin=expresion((*r).par3), paso=(*r).par4;
	if (paso=="1")
		insertar(prog,tabs+"for "+var+"="+ini+":"+fin);
	else
		insertar(prog,tabs+"for "+var+"="+ini+":"+expresion(paso)+":"+fin);
	bloque(prog,++r,q,tabs+"\t");
	insertar(prog,tabs+"end");
}
コード例 #10
0
void MatLabExporter::si(t_output &prog, t_proceso_it r, t_proceso_it q, t_proceso_it s, string tabs){
	insertar(prog,tabs+"if "+expresion((*r).par1));
	bloque(prog,++r,q,tabs+"\t");
	if (q!=s) {
		insertar(prog,tabs+"else");
		bloque(prog,++q,s,tabs+"\t");
	}
	insertar(prog,tabs+"end");
}
コード例 #11
0
void VbExporter::si(t_output &prog, t_proceso_it r, t_proceso_it q, t_proceso_it s, string tabs){
	insertar(prog,tabs+"If "+expresion((*r).par1)+" Then");
	bloque(prog,++r,q,tabs+"\t");
	if (q!=s) {
		insertar(prog,tabs+"Else");
		bloque(prog,++q,s,tabs+"\t");
	}
	insertar(prog,tabs+"End If");
}
コード例 #12
0
void MatLabExporter::leer(t_output &prog, t_arglist args, string tabs){
	t_arglist_it it=args.begin();
	while (it!=args.end()) {
		tipo_var t;
		string varname=expresion(*it,t);
		if (t==vt_caracter) insertar(prog,tabs+varname+"=input(\'\',\'s\');");
		else insertar(prog,tabs+varname+"=input(\'\');");
		++it;
	}
}
コード例 #13
0
ファイル: Clase_26-05-14_2.c プロジェクト: Rootx64/C
int main()
{
	ptrListaDoble inicio=NULL;
	insertar(&inicio,'a');
	insertar(&inicio,'b');
	insertar(&inicio,'c');
	imprimir(inicio);

	return 0;
}
コード例 #14
0
ファイル: examen.c プロジェクト: dualbus/data_structures
arbol_t *
insertar(arbol_t *arbol, int dato)
{
    if(NULL == arbol)
        return crear(dato);
    if(dato < arbol->dato)
        arbol->izq = insertar(arbol->izq, dato);
    else
        arbol->der = insertar(arbol->der, dato);
    return arbol;
}
コード例 #15
0
ファイル: tp.tab.c プロジェクト: morgan2990/tp-compiladores
void agregarATablaDeSimbolos(char *varType, char *varName){
  if (strcmp(varType, "Boolean")){
    insertar (varName, 'b');
  } else if ( strcmp(varType, "Integer")){
    insertar (varName, 'i');
  } else if (strcmp (varType, "String")){
    insertar (varName, 's');
  } else {
    yyerror ("todo mal, no reconozco el tipo de variable");
  }
};
コード例 #16
0
void Arbol::insertar(int valor, Arbol *actual)
{
    if(!actual)
    {
        actual = new Arbol(valor);
        return;
    }
    if(actual->valor < valor)
        insertar(valor, actual->hijoIzquierdo);
    else
        insertar(valor, actual->hijoDerecho);
}
コード例 #17
0
void VbExporter::leer(t_output &prog, t_arglist args, string tabs){
	t_arglist_it it=args.begin();
	while (it!=args.end()) {
		tipo_var t;
		string varname=expresion(*it,t);
		if (t==vt_numerica && t.rounded) insertar(prog,tabs+varname+" = Integer.Parse(Console.ReadLine())");
		else if (t==vt_numerica) insertar(prog,tabs+varname+" = Double.Parse(Console.ReadLine())");
		else if (t==vt_logica) insertar(prog,tabs+varname+" = Boolean.Parse(Console.ReadLine())");
		else  insertar(prog,tabs+varname+" = Console.ReadLine()");
		++it;
	}
}
コード例 #18
0
void MatLabExporter::repetir(t_output &prog, t_proceso_it r, t_proceso_it q, string tabs){
	string auxvar=get_aux_varname("aux_logica_");
	insertar(prog,tabs+auxvar+"=true;");
	insertar(prog,tabs+"while "+auxvar);
	bloque(prog,++r,q,tabs+"\t");
	if ((*q).nombre=="HASTAQUE")
		insertar(prog,tabs+"\t"+auxvar+"="+expresion(invert_expresion((*q).par1))+";");
	else
		insertar(prog,tabs+"\t"+auxvar+"="+expresion((*q).par1)+";");
	insertar(prog,tabs+"end");
	release_aux_varname(auxvar);
}
コード例 #19
0
void ins_b (pagina **raiz,int x,int *s)
{
	int posicion,i,subir,subir1,terminar,separar;
	pagina *p,*nuevo,*nuevo1;
	LIFO pila;
	void init_pila (struct LIFO *p);
	int  pila_vacia (struct LIFO *p);
	void ins_pila (struct LIFO *p,pagina *s);
	void retira_pila (struct LIFO *p,pagina **s);
	init_pila (&pila);
	*s = 0;
	if (*raiz == NULL)
		crear_pagina (raiz, x);
	else {
		buscar (*raiz, x, &posicion, &pila);
		if (posicion == -1)
			*s = 1; /* La llave esta en el arbol */
		else {
			terminar = separar = 0;
			while (!pila_vacia (&pila) && terminar == 0) {
			  retira_pila (&pila, &p);
			  if (p->cont == M) {
				  if (separar == 0) {
				romper (p, NULL, &nuevo, x, &subir);
				separar = 1;
				  }
				  else {
					  romper (p,nuevo,&nuevo1,subir,&subir1);
					  subir = subir1;
					  nuevo = nuevo1;
				  }
			  }
			  else {
				  if (separar == 1) {
					  separar = 0;
					  i = donde (p, subir);
					  insertar (p, subir, &i);
					  cderecha_apunt (p, i+1);
					  p->apunt [i+1] = nuevo;
				  }
				  else insertar (p, x,&posicion);
				  terminar = 1;
			  }
			}
			if (separar == 1 && terminar == 0) {
				crear_pagina (raiz,subir);
				(*raiz)->apunt [0] = p;
				(*raiz)->apunt [1] = nuevo;
			}
		}
	}
}
コード例 #20
0
void HTMLExporter::translate (t_output & out, t_programa & prog) {
	insertar(out,"<!DOCTYPE html>");
	insertar(out,"<HTML>");
	insertar(out,"\t<HEAD>");
	insertar(out,string("\t\t<TITLE>")+main_process_name+"</TITLE>");
	insertar(out,"\t</HEAD>");
	insertar(out,string("\t<BODY onload=\"")+ToLower(main_process_name)+"();\">");
	insertar(out,"\t\t<SCRIPT type=\"text/javascript\">");
	JavaScriptExporter::translate(out,prog);
	insertar(out,"\t\t</SCRIPT>");
	insertar(out,"\t</BODY>");
	insertar(out,"</HTML>");
}
コード例 #21
0
void insertar(int nodo, int dato){
    if(clave[nodo]>dato){
        if(izq[nodo] == -1){
            izq[nodo] = crear_nodo(dato);
        } else {
            insertar(izq[nodo], dato);
        }
    } else {
        if(der[nodo] == -1){
            der[nodo] = crear_nodo(dato);
        } else {
            insertar(der[nodo], dato);
        }
    }
}
コード例 #22
0
ファイル: Clase_26-05-14.c プロジェクト: Rootx64/C
int main()
{
	int x;
	ptrCola inicio = NULL;
	ptrCola fin    = NULL;

	insertar(&inicio,&fin,1);
	x = eliminar(&inicio,&fin);
	printf("%d\n",x );
	insertar(&inicio,&fin,2);
	x = eliminar(&inicio,&fin);
	printf("%d\n",x );
	x = eliminar(&inicio,&fin);
	return 0;
}
コード例 #23
0
int main(){
int salida = 0, opc;

struct nodo *L;
L = NULL;

do{
printf("1) Insertar\n2) Borrar\n3) Listar\n4) Salir\n=============================\n");
    printf("Seleccione una opcion:\t");
    scanf("%d",&opc);
    switch(opc){
                case 1:                  
                     insertar(&L);
                     break;
                case 2:
                     borrar(&L);
                     break;
                case 3:
                     listar(L);
                     break;
                case 4:
                     salida = 1;
                     break;
                default:
                     salida = 0;
                        break;
                }
    }while(salida == 0);


getchar();  
    return 0;
    }
コード例 #24
0
ファイル: trietree.c プロジェクト: nachomaro/trietree
void command_insertar(int argc, char *argv, nodotrie *root)
{
    if ( root == NULL ) {
        printf("El programa ha cerrado de forma inesperada.\n");
        exit(1);
    }
    
    if (argc == 1){
        printf("Error al usar insertar, faltan argumentos.\n");
        return;
    }
    
    
    if (isValid(argv) == 0){
        printf("No se ha agregado la palabra. Esta contiene caracteres no validos.\n");
        return;
    }
    
    if (command_search(argc, argv, root,  0) == 1) {
//        printf("La palabra que desea insertar ya existe\n");
        return;
    }
    
    insertar(root, argv);
}
コード例 #25
0
ファイル: 3_2.cpp プロジェクト: gtrias/c-exercicis
void menu(){
   int seleccion;
	clrscr();
   printf("1.- Crear vector numerico de 10 elementos: ");
   printf("\n2.- Ordenar vector: ");
   printf("\n3.- Insertar un elemento: ");
   printf("\n4.- Borrar un elemento: ");
   printf("\n5.- Buscar un elemento: ");
   printf("\n6.- Visualizar lista: \n");
   scanf("%d",&seleccion);
   switch (seleccion){
   	case 1: crear();
      	break;
      case 2: ordenar();
      	break;
      case 3: insertar();
      	break;
      case 4: borrar();
      	break;
      case 5: buscar();
      	break;
      case 6: visualizar();
      	break;
   }
}
コード例 #26
0
ファイル: cola.c プロジェクト: Petafloper/colaestaticaenc
     main (){ 
        int opc;
        do{
         printf ("\n\n\n");
         printf ("1. METER EN LA COLA\n\n");
         printf ("2. SACAR DE LA COLA\n\n");
         printf ("3. VER COLA\n\n");
         printf ("4. SALIR\n");
         printf ("\n $$$$$$$$$$$$$$$$$$$$$$$$$$$$ \n");
         printf ("  Escoja una opcion \n");
         scanf("%d", &opc);
         printf("\n\n");
         switch (opc){
          case 1 : insertar();
           break;
          case 2: eliminar();
           break;
          case 3: ver();
           break;
          case 4:
                return;
           break;       
           }             
         } while (opc != 4);

}
コード例 #27
0
//PROGRAMA PRINCIPAL
void main()
{
//clrscr();
nodo *prin; //puntero al principio de la lista
int op;
//clrscr();
do {
	op=menu();
		switch (op)
		{
		case 1:
		        prin=(nodo *)malloc(sizeof(nodo));
		        crear(prin);
	      	        printf("\n");
		        mostrar (prin);
		        continue;
		case 2:
		        prin=insertar(prin);
		        printf("\n");
		        mostrar(prin);
		        continue;
		case 3:
		        prin=eliminar (prin);
		        printf("\n");
                                           mostrar(prin);
		        continue;
		case 4:
		        printf("\nfin de proceso");
		}

	  }while (op !=4);

}
コード例 #28
0
ファイル: huffman.c プロジェクト: brokendragon/PERDICE
void calcularFreq(FILE *fp, struct nodo **raiz)
{
	BYTE buf[BUF_SZ];
	int nbytes, cont;
	struct nodo *n;


	rewind(fp);
	*raiz=NULL;

	do
	{
		nbytes=fread(buf, 1, BUF_SZ, fp);
		if (ferror(fp))
		{
			perror("fread: calcularFreq()");
			exit(1);
		}

		for (cont=0; cont < nbytes; cont++)
		{
			if ((n=yaInsertado(*raiz, buf[cont])))
				n->freq++;
			else
				*raiz=insertar(*raiz, buf[cont]);
		}
	} while (!feof(fp));

	*raiz=ordenar(*raiz);
}
コード例 #29
0
ファイル: 48.c プロジェクト: leolas95/c
int main(void)
{
	HashTable htbl[MAXREGS];
	init(htbl);

	int i = 0;
	for (; i < MAXREGS; i++)
		insertar(htbl, palabras[i]);

	mostrar(htbl);

	if (buscar(htbl, "Guitarra") > -1)
		printf("Guitarra encontrado\n");
	else
		printf("Guitarra no encontrado\n");

	if (buscar(htbl, "Mecanica") > -1)
		printf("Mecanica encontrado\n");
	else
		printf("Mecanica no encontrado\n");

	if (eliminar(htbl, "Teclado") > -1)
		printf("Teclado eliminado\n");
	else
		printf("Teclado no eliminado\n");


	mostrar(htbl);
	return 0;

}
コード例 #30
0
ファイル: 06p19.c プロジェクト: sti2012/SSOO-1
int leer (DiccionarioConsecutivo * x, char * nombre)
{
  long i;
  long longitud;
  char ciudad [MAX];
  long distancia;

  FILE * p = fopen (nombre, "rb");
  if (!p) 
    return 1;
  fread (&(x->maximo), sizeof (long), 1, p);
  iniciar (x, x->maximo);

  for (i=0; i<x->maximo; i++) 
  {
    fread (&longitud, sizeof (long), 1, p);
    fread (ciudad, sizeof (char), longitud, p);
    ciudad[longitud] = '\0';
    fread (&distancia, sizeof (long), 1, p);
    insertar (x, ciudad, distancia);
  }
  
  fclose (p);
  return 0;
}