Buscar

atividade pratica Estrutura de Dados nota100 com gabarito

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Utilizando a linguagem de programação C/C++ crie um program que demonstre o uso de uma estrutura de dados do tipo 
fila de inteiros que use como elemento de armazenamento uma estrutura do tiplo lista encadeada. Certifique-se que sua 
estrutura de fila tenha funções para inserir, apagar, criar e mostrar o conteúdo da lista além de uma função para devolver 
o tamanho da fila e outra para esvaziar a fila. Observe também que, para resolver este problema você precisará, 
obrigatoriamente utilizar alocação dinâmica de memória e que para testar a fila o usuário deve ter acesso a um menu 
contendo todas as funções especificadas.
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
1 de 21 15/12/2016 20:55
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
2 de 21 15/12/2016 20:55
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
3 de 21 15/12/2016 20:55
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
4 de 21 15/12/2016 20:55
Resposta:
#include <stdio.h>
#include <stdlib.h>
struct Node{
int num;
struct Node *prox;
};
typedef struct Node node;
int tam;
int menu(void);
void opcao(node *FILA, int op);
void inicia(node *FILA);
int vazia(node *FILA);
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
5 de 21 15/12/2016 20:55
node *aloca();
void insere (node *FILA);
node *retira(node *FILA);
void exibe(node *FILA);
void libera(node *FILA);;
int main(void)
node *FILA= (node *) malloc(sizeof(node));
if (!FILA) {
 printf("Sem memoria disponivel!\n");
 exit (1);
}else{
inicia(FILA);
int opt;
do{
 opt=menu();
 opcao(FILA,opt);
}while(opt);
free(FILA);
return 0;
}
}
int menu(void)
 int opt; 
 printf("Escolha a opcao\n");
 printf("0. Sair\n");
 printf("1. Zerar fila\n");
 printf("2. Exibir fila\n);
 printf("3. Adicionar elemento na fila\n);
 printf("4. Retirar elemento da fila\n);
 printf("Opcao: "); scanf("%d, &opt);
 return opt;
}
void opcao(node *FILA, int op)
{
 node *tmp;
 switch(op) {
 case 0:
 libera(FILA);
 break;
 case 1:
 libera (FILA);
 inicia(FILA);
 break;
 case 2:
 exibe(FILA);
 break;
 case 3:
 insere(FILA);
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
6 de 21 15/12/2016 20:55
 break;
 case 4:
 tmp= retira(FILA);
 if(tmp != NULL) {
 printf("Retirado: %3d\n\n", tmp->num);
 libera(tmp);
}
break;
default:
 printf("Comando invalido\n\n");
 }
}
void inicia(node *FILA)
{
 FILA->prox = NULL;
 tam=0;
}
int vazia(node *FILA)
{
 if (FILA->prox ==NULL)
 return 1;
else
 return 0;
}
node *aloca()
 node *novo=(node *) malloc(sizeof(node));
if(!novo){
 printf("Se memoria disponivel!\n");
 exit (1);
}else{
 printf("Novo elemento: "); scanf("%d", &novo->num);
 return novo;
}
}
void insere(node *FILA)
{
 node *novo=aloca();
 novo->prox = NULL;
 if(vazia(FILA))
 FIla->prox=novo;
else{
 node *tmp = FILA->prox;
 while(tmp->prox != NULL)
 tmp=tmp->prox;
 tmp-> = novo;
}
tam++;
}
nde *retira(node *FILA)
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
7 de 21 15/12/2016 20:55
{
 if(FILA->prox ==NULL) {
 printf("Fila ja esta vazia\n");
 return NULL;
 }else{
 node *tmp = FILA-prox;
 FILA->prox = tmp->prox;
 tam--;
 return tmp;
 }
}
void exibe(node *FILA)
{
 if(vazia(FILA)){ 
 printf("Fila vazia!\n\n");
 return;
}
node *tmp;
tmp = FILA->prox;
printf("Fila : ");
while(tmp != NULL) {
 printf("%5d", tmp->num);
 tmp = tmp->prox;
}
printf("\n ");
int count;
for (count=0; count < tam ; count++)
 printf(" ^ ");
printf("\nOrdem: ");
for (count=0 ; count < tam ; count++)
 prinf("%5d", count+1);
 printf("\n\n");
}
void libera(node *FILA)
{
 if(!vazia(FILA)){
 node *proxNode,
 *atual;
 atual = FILA->prox;
while(atual != NULL) {
 proxNode = atual->prox;
 free (atual);
 atual = proxNode;
 }
 }
} 
Usando a linguagem de programação C/C++ escreva um programa que calcule o fatorial de um número inteiro digitado 
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
8 de 21 15/12/2016 20:55
pelo usuário. Para que você consiga completar esta tarefa, o programa terá que ter pelo menos uma função.
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
9 de 21 15/12/2016 20:55
Resposta:
#include <stdio.h>
#include <stdlib.h>
double fatorial(double num);
void imprime();
int main()
{
 imprime();
 return 0;
}
void imprime()
{
 double num;
 printf("\n\nDigite um numero inteiro para o calculo do fatorial: " );
 scanf("%if", &num);
printf("O resultado e : %.0lf\n\n", fatorial(num));
system("pause");
}
double fatorial(double num) // Calculo do fatorial
{
double aux;
aux = num;
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
10 de 21 15/12/2016 20:55
while (num > 1) 
{
aux = aux * (num-1);
num--;
}
return (aux);
} 
Utilizando a linguagem de programação C/C++ você deve criar um programa capaz de armazenar um número indefinido 
de inteiros na memória. Este programa deverá solicitar ao usuário o tamanho do vetor que armazenará este número, 
criar as estruturas necessárias, solicitar ao usuário que digite cada um dos números que serão armazenados e imprimir o 
conjunto de números armazenados e a soma destes números
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
11 de 21 15/12/2016 20:55
Resposta:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int *v;
int n, i, soma=0;
printf("\nDigite o tamanho do vetor: ");
scanf("%d", &n);
v=(int*)malloc(n * sizeof(int));
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
12 de 21 15/12/2016 20:55
for(i=0; i<n; i++)
 {printf("Digite os numeros do vetor: ");
 scanf("%d", &v[i]);
soma=soma+v[i];
}
printf("\n\nValores digitados: \n");
for (i=0; i< n; i++)
{
printf("\n %d\n", v[i]);
}
printf("\n A soma dos valores do vetor e: %d \n", soma);
}
Utilizando a linguagem de programação C/C++ escreva um programa que teste estrutura de ordenação do tipo inserção, 
de números inteiros. O programa deverá permitir a digitação de um vetor com 10 elementos e possuir uma função que 
ordene estes valores utilizado o método Bubble Sort. Observe que para concluir esta tarefa o seu programa deverá 
imprimir o vetor não ordenado, o vetor ordenado e o resultado de cada passo do processo de ordenação.
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
13 de 21 15/12/2016 20:55
Resposta:
#include <stdio.h>
#include <stdlib.h>
#ifdef WIN32
#define limpa_tela system("cls")
#else
#define limpa_tela system("/usr/bin/clear")
#define espera sleep(1)
#endif
main() {
int p=0, ax=0;
int in=0 ,at=0;
int tr=0, key=0;
//Quantidade de elementos do vetor
while((p<=0) l l (p>100)){
printf("\nDigite a quantidade de numeros do vetor ");
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
14 de 21 15/12/2016 20:55
scanf("%d",&p);//criando o vetor
int vetor[p] , orig[p], opc=-1;
//Preenchendo os dados do vetor
for(ax=0;ax<=p-1;ax++){
printf("\nInsira o numero %d: , ax+1);
orig[ax]=vetor[ax];
}
limpa_tela;
while ((opc<=0) l l (opc>=4)){
printf("\n > Menu: ");
printf("\n1. Selecao l Selection Sort");
printf("\n2. Insercao l Inserction Sort");
printf("\n3. Troca l Bubble Sort");
printf("\n > Resposta: ");
scanf("%d", &opc);
}
printf("\nOrdenando: \n");
int i, j, t, m;
if(opc==1){
//Selecao
for (in=0; in<=p-1; in++){
for (ax=0; ax<=p-1; ax++){
printf("[%d]", vetor[ax]);
}
key=in;
for(at=in+1; at<=p-1; at++){
if(vetor[at]<vetor[key])
key=at;
}
tr = vetor[key];
vetor[key]=vetor[in];
vetor[in]=tr;
print("\n");
}
}
else if(opc==2){
//insercao
for (in=1; in<p; in++){
for(ax=0;ax<=p-1; ax++){
printf("[%d]", vetor[ax]);
}
key = vetor[in];
at = in-1;
while(at>=0 && vetor[at]> key){
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
15 de 21 15/12/2016 20:55
vetor[at+1] = vetor[at];
at-=1;
vetor[at+1] =key;
}
printf("\n");
}
}
else if (opc==3){
// Bubble
tr = p-1;
for(in =0; in<p; in++)
{
for(ax=0; ax<=p-1; ax++){
printf("[%d]", vetor[ax]);
}
for (at =0 ; at <tr; at++)
{
if (vetor[at] > vetor[at+1])
{
ax =vetor[at];
vetor[at] = vetor[at+1];
vetor[at+1] = ax;
}
}
tr--;
printf("\n");
}
}
// vetor Original
printf("\nOriginal: ");
for (ax=0;ax<=p-1; ax++){
printf("[%d]" , orig[ax]);
}
// Vetor ordenado
printf("\nOrdenada: ");
for (ax=0; ax<=p-1; ax++){
printf("[%d]" ,vetor[ax]);
getchar();
printf("\n\nPressione -Enter_ para encerrar\n\n");
getchar();
}
Utilizando a linguagem de programação C/C++ crie um programa que utilize a estrutura de dados conhecida como fila par
a armazenar até 50 inteiros que use como elemento de armazenamento um vetor (array). 
Observe que seu programa deverá possuir pelo menos três funções do tipo void chamadas de inserir, apagar e mostrar e 
que o usuário dever ter acesso a um menu de opções que permita a inclusão, exclusão e apresentação dos valores conti
dos armazenados nesta fila. Cabe ao programador a responsabilidade de avisar ao usuário erros comuns como fila 
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
16 de 21 15/12/2016 20:55
cheia e vazia.
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
17 de 21 15/12/2016 20:55
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
18 de 21 15/12/2016 20:55
Resposta:
#include <stdio.h>
#include <stdlib.h>
#define tam 50
int row[tam];
int ini=0;
int fim=0;
it cont=0;
// Insere valor na fila
void insere(int valor){
if(cont == tam){
printf("Fila cheia!\n");
return;
}
row[fim] =valor;
if(fim == tam-1)
fim=0;
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
19 de 21 15/12/2016 20:55
else
fim++;
cont++;
printf("Inserido!\n\n");
}
// Remove o primeiro elemento da fila
void removerf(){
if (cont == 0){
printf("Fila vazia!\n");
return;
}
if(ini == tam-1)
ini=0;
else
ini++;
cont--;
printf("Removido!\n");
}
// Imprime a fila
void imprime(){
int i, j;
if(cont ==0){
printf("Fila vazia!\n");
return;
}
printf("\nFila: ");
j = ini;
for(i = 0; i< cont; i++){
printf("\n%d", row[j]);
if(j == tam-1)
j= 0;
else
j++;
}
}
int main(){
int op = 0, valor;
do{
printf("\n\nSelecione a opcao (0 para sair):\n");
printf("1 - Inserir\n");
printf("2 - Remover\n");
printf("3 - Imprimir\n);
scanf("%d", &op);
switch(op){
case 1:printf("\nDigite o valor a ser inserido:\n ");
scanf("%d", &valor);
insere(valor);
break;
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
20 de 21 15/12/2016 20:55
case 2: removef();
break;
case 3: imprime ();
break;
default: printf("Digite uma opcao valida\n");
break;
}
} while (op != 0);
printf("\n");
system("pause");
return 1;
}
AVA UNIVIRTUS http://univirtus-277877701.sa-east-1.elb.amazonaws.com/ava/web/#/a...
21 de 21 15/12/2016 20:55

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes