/* 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; }
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; } }
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"); }
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"); } }
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); } }
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"); }
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)); }
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); }
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"); }
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"); }
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"); }
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; } }
int main() { ptrListaDoble inicio=NULL; insertar(&inicio,'a'); insertar(&inicio,'b'); insertar(&inicio,'c'); imprimir(inicio); return 0; }
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; }
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"); } };
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); }
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; } }
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); }
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; } } } }
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>"); }
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); } } }
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; }
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; }
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); }
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; } }
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); }
//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); }
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); }
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; }
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; }