Buscar

Lista Completa

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <iostream>
#include <cstdlib>
using namespace std;
void percorrer(int v[], int n){
	for (int i = 0; i < n; i++)
		cout << v[i] << " ";
}
//void inserir(int v[], int &n, int e){
//	if (40 == n){
//		cout << “ERRO: Lista cheia.”;
//	}else{
//		v[n] = valor;
//		n++;
//	}
//}
void inserirEmOrdem(int v[], int &n, int valor){
	int i, posicao;
	if(n == 40){
		cout << "ERRO : Lista cheia." << endl;
		return;
	}
	i = 0;
	while (valor > v[i] && i < n) i++;
	posicao = i;
	for (i = n; i > posicao; i--){
		v[i] = v[i-1];
	}
	v[posicao] = valor;
	n++;
}
//int buscarSequencial(int v[], int n, int valor){
//	for (int i = 0; i < n; i++){
//		if (v[i] == valor) return i;
//	}
//	return -1;
//}
int buscaBinaria(int v[], int n, int e){
	int ini = 0, fim = n -1, meio;
	while (ini <= fim){
		meio = (ini + fim)/2;
		if (v[meio] == e) return meio;
		if (e < v[meio]) fim = meio -1;
		else ini = meio+1;
	}
	return -1;
}
//void remover(int v[], int &n, int e){
//	int pos;
//	if (n == 0){
//		cout << “ERRO : Lista vazia.” << endl;
//		return; // return; sai da função sem retornar valor algum
//	}
//	pos = buscarSequencial(v,n,e);
//	if (posicao == -1){
//		cout << “ERRO : Valor não encontrado.” << endl;
//		return;
//	}
//	v[posicao] = v[n-1];
//	n--;
//}
void removerEmOrdem(int v[], int &n, int valor){
	int i, pos;
	if(n == 0) { // testa se o vetor está vazio
		cout << "ERRO : Lista vazia." << endl;
		return;
	}
	pos = buscaBinaria(v,valor,n);
	if (pos < 0){
		cout << "ERRO : Elemento não encontrado." << endl;
		return;
	}
	n--;
	for (i = pos; i < n; i++) v[i] = v[i+1];
}
void ordenarBolha(int v[], int n){
	int i,fim=n-1,aux;
	bool trocou = true;
	while (trocou){
		trocou = false;
		for (i = 0; i < fim; i++){
			if (v[i] > v[i+1]){
				aux = v[i];
				v[i] = v[i+1];
				v[i+1] = aux;
				trocou = true;
			}
		}
		fim--;
	} // fim while
}// fim da função
// Prog. Principal
int main(){
	int v[40], tam, i, temp;
 tam = 0;
	for (i = 0; i < 3; i++){
		cout << "Digite um numero: " << endl;
		cin >> temp;
		inserirEmOrdem(v, tam, temp);
	}
	percorrer(v,tam);
	cout << "Digite um numero pra procurar: " << endl;
	cin >> temp;
	i = buscaBinaria(v,tam,temp);
	if (i == (-1)){
		cout << "Nao achei " << temp << "...\n";
	}else{
		cout << "Achei " << temp << " na posicao " << i << "...\n";
	}
	cout << "Digite um numero pra excluir: " << endl;
	cin >> temp;
	removerEmOrdem(v,tam,temp);
	percorrer(v,tam);
	system("pause");
	return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais