Baixe o app para aproveitar ainda mais
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; }
Compartilhar