int main () {
	
	SecuenciaCaracteres cadena;
	int tope,i;
	char caracter;
	
	cin>>caracter;
	
	while(caracter!='#'){
		cadena.Aniade(caracter);
		cin>>caracter;
	}
	
	
	
	tope=cadena.TotalUtilizados();
	for (i = 0; i < tope; i++)
      cout  << cadena.Elemento(i);
      
   cadena.EliminaRepetidos();
      
   tope=cadena.TotalUtilizados();
	for (i = 0; i < tope; i++)
      cout  << cadena.Elemento(i);
      
      
   system("pause");
   
}
    void Reemplaza(int inicio, int n_a_quitar, SecuenciaCaracteres a_insertar) {
        int diferencia_componentes, tamanio_a_insertar, lectura, escritura, siguiente;

        tamanio_a_insertar = a_insertar.TotalUtilizados();

        if(tamanio_a_insertar + total_utilizados <= TAMANIO && n_a_quitar <= total_utilizados - inicio && inicio <= total_utilizados) {

            diferencia_componentes = tamanio_a_insertar - n_a_quitar;

            if(diferencia_componentes < 0) {
                siguiente = 1;
                lectura = inicio + n_a_quitar;
                escritura = inicio + tamanio_a_insertar;
            }
            else {
                siguiente = -1;
                lectura = total_utilizados - 1;
                escritura = total_utilizados - 1 + diferencia_componentes;
            }

            int numero_componentes_a_desplazar = total_utilizados - n_a_quitar - inicio;

            for(int i=0; i < numero_componentes_a_desplazar; i++) {
                vector_privado[escritura] = vector_privado[lectura];
                lectura = lectura + siguiente;
                escritura = escritura + siguiente;
            }

            for(int i=0; i<tamanio_a_insertar; i++) {
                vector_privado[inicio+i] = a_insertar.Elemento(i);
            }
        }
        total_utilizados = total_utilizados + diferencia_componentes;
    }
예제 #3
0
int main(){

	char caracter, letra_inicio, letra_final;
	int contador; 
	SecuenciaCaracteres letras;

	cout << "\nintroduce una secuencia de caracteres (# para terminar): \n";
	
	while(caracter != '#'){

		caracter = cin.get();
		cin.ignore();

		if (caracter != '#'){


			letras.Aniade(caracter);

		}
	
	}

	//imprimimos el vector original

	cout << "\n\nDatos del vector original" << "\n";

	for(contador = 0; contador < letras.TotalUtilizados(); contador++){

		cout << letras.Elemento(contador) << "\n";

	}

	cout << "\n\nIntroduce la letra de inicio para imprimir el vector: ";
	cin >> letra_inicio;
	cout << "\n\nIntroduce la letra por la que finalizará el vector: ";
	cin >> letra_final;

	SecuenciaCaracteres resultado(letras.Ordena(letra_inicio, letra_final));

	cout << "\n\nEl vector resultante es: ";

		for (int i = 0; i < resultado.TotalUtilizados(); i++ ){

			cout << " " << resultado.Elemento(i);

		}

		cout << "\n\n";
}
int main() {
    SecuenciaCaracteres palabra;
    SecuenciaCaracteres para_insertar;

    palabra.AniadeCadena("abcdefgh");
    para_insertar.AniadeCadena("jklmn");

    int tope = palabra.TotalUtilizados();

    for(int i=0; i<tope; i++) {
        cout << palabra.Elemento(i);
    }
    cout << endl;

    palabra.Reemplaza(1,3,para_insertar);

    tope = palabra.TotalUtilizados();

    for(int i=0; i<tope; i++) {
        cout << palabra.Elemento(i);
    }

    cout << "\n\n";
}
예제 #5
0
int main(){
	SecuenciaCaracteres frase;
	int tope;

	frase.Aniade('c');
	frase.Aniade('b');
	frase.Aniade('b');
	frase.Aniade('a');
	frase.Aniade('b');
	frase.Aniade('c');
	frase.Aniade('c');
	frase.Aniade('a');
	frase.Aniade('g');
	frase.Aniade('c');
	frase.Aniade('b');
	frase.Aniade('g');
	frase.Aniade('c');
	
	tope = frase.TotalUtilizados();

	for (int i = 0; i < tope; i++)
		cout  << frase.Elemento(i) << " ";


	tope = frase.TotalUtilizados();          

	cout << "\n";

	for (int i = 0; i < tope; i++)
		cout  << frase.CountingSort().Elemento(i) << " ";

	
	tope=frase.CountingSort_Limites('b','g').TotalUtilizados();
	cout << "\n";
	for (int i = 0; i < tope; i++)
		cout  << frase.CountingSort_Limites('b','g').Elemento(i) << " ";
	
	
	system ("pause");
}