Buscar

Atividade Estruturada- Estrutura de Dados

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESTRUTURA DE DADOS – Data: 05/06/2015
ATIVIDADE ESTRUTURADA
GRUPO V
 
Aluno: 
Aluno: 
O presente trabalho deve ser POSTADO NO WEBAula até o dia 05/junho e APRESENTADO até o dia 17/06, obedecendo aos seguintes critérios:
O trabalho deve postado em um arquivo contendo as seguintes partes:
Folha de rosto com este roteiro e nome completo dos alunos do grupo acima desta descrição e código fonte em Dev C++.
DESENVOLVIMENTO: 
Pilha 
1. Faça um programa em C++ para ler um número inteiro maior que zero, converter este número 
de decimal para hexadecimal, usando pilha e apresentar na tela, o resultado da conversão. 
Apresentação do código fonte:
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define tam 50
using namespace std;
struct pilha
{
 int topo;
 int item[tam];
};
bool inicia(pilha &p)
	{
 		p.topo = -1;
	}
bool vazia(pilha p)
	{
 		return p.topo == -1;
	}
bool cheia(pilha p)
	{
 		return p.topo == tam-1;
	}
void empilha(pilha &p, int num)
{
 if(!cheia(p))
 	{
 		p.item[++p.topo] = num;
 	}
}
int desempilha(pilha &p)
{
 if(!vazia(p))
 {
 return p.item[p.topo--];
 }
 else
 {
 	 return 0;
 }
}
void mostra_pilha(pilha &p)
{
	if(!vazia(p))
	{
		cout<<"PILHA:"<<"\n";
		for(int i = 0; i <= p.topo;i++)
		{
			cout<<p.item[i]<<"\n";
		}
			cout<<endl;
	}
}
int main()
{
 pilha p;
 int num;
 int resto, hex;
 inicia(p);
 cout << "DIGITE O NUMERO DECIMAL INTEIRO QUE DESEJA CONVERTER PARA HEXADECIMAL:\n";
 cin >> num;
 cout<<endl;
 while(num != 0)
 {
 resto = num%16;
 empilha(p, resto); 
 num /= 16;
 }
	mostra_pilha(p);
	cout<<"VALOR EM HEXADECIMAL= ";
	while(!vazia(p))
	{
 hex = desempilha(p);
 
 switch (hex)
	 {
 	case 10: 
 		cout<<"A";
 		break;
 	case 11:
 		cout<<"B";
 		break;
 	case 12:
 		cout<<"C";
 		break;
 	case 13:
 		cout<<"D";
 		break;
 	case 14:
 		cout<<"E";
 		break;
 	case 15:
 		cout<<"F";
 		break;
 	default:
 		cout<<hex;
 	}
 }
 cout<<endl;
 return 0;
}
Apresentação do resultado:
Exercicio 2 .- Exercicio 19 da página 119 da apostila parte I
#include <cstdlib>
#include <time.h>
#include <iostream>
using namespace std;
struct No {
 int Valor;
 struct No *prox; 
};
struct Lista {
 No *inicio;
};
 void IniciaLista(Lista *lista){
 lista->inicio = NULL;
}
bool Vazia(Lista *lista){
 return (lista->inicio == NULL);
}
void Insere_Inicio(int x, Lista *lista){
 No *aux;
 aux=new No;//aloca memoria para aux
 aux->Valor = x;
 aux->prox = lista->inicio;
 lista->inicio=aux;
}
void Remove_Inicio(Lista *lista){
 if (Vazia(lista)) {
 cout<<"Fila vazia\n";
 }
 else{
 No *q; int v; 
 q = lista->inicio->prox;
 v = lista->inicio->Valor;
 delete lista->inicio; //libera memoria
 lista->inicio=q; 
 cout<<"removeu "<<v<<'\n';
 }
}
void Insere_Fim(int x, Lista *lista){
 if(lista->inicio==NULL)
 Insere_Inicio(x,lista);
 else{
 No *aux1,*aux2;
 aux1=new No;//aloca memoria para aux
 //aux1 = (No*) malloc(sizeof(No));aloca memoria para o ponteiro aux
 aux1->Valor = x;
 aux1->prox=NULL;
 aux2=lista->inicio;
 while(aux2->prox!=NULL)
 aux2=aux2->prox;
 aux2->prox=aux1;
 }
}
void Remove_Fim(Lista *lista){
 if (Vazia(lista)) 
 cout<<"Lista vazia\n";
 else{
 No *q,*aux; int v;
 q=lista->inicio;
 while(q->prox!=NULL){
 aux=q; 
 q=q->prox;
 } 
 v = q->Valor;
 delete q;//libera memoria de q
 free(q); //libera a memoria do ponteiro inicio
 aux->prox=NULL;
 cout<<"removeu "<<v<<'\n';
 }
}
void Insere_Meio(int x, Lista *lista, int pos){
 if(pos==1)
 Insere_Inicio(x, lista);
 else{
 No *aux1,*aux2;
 aux1=new No;//aloca memoaria para aux
 //aux1 = (No*) malloc(sizeof(No));aloca memoria para o ponteiro aux
 aux1->Valor = x;
 aux2=lista->inicio;
 int i;
 for(i=1;i<pos-1;i++)
 aux2=aux2->prox;
 //cout<<"posicao="<<i<<" "<<aux2->Valor<<endl; 
 aux1->prox=aux2->prox;
 aux2->prox=aux1;
 }
}
void Remove_Meio(Lista *lista, int pos){
 if(pos==1)
 Remove_Inicio(lista);
 else{
 No *q,*aux; int v;
 q=lista->inicio;
 for(int i=1;i<pos;i++){
 aux=q; 
 q=q->prox;
 } 
 v = q->Valor;
 aux->prox=q->prox;
 delete q;//libera memoria de q
 //free(q); libera a memoria do ponteiro removido
 cout<<"removeu "<<v<<'\n';
 }
}
void Remove_Ponteiro(Lista *lista, No *pos){
 No *q,*aux; int v;
 q=lista->inicio;
 if(pos==lista->inicio){
 lista->inicio=q->prox;
 v=q->Valor;
 cout<<"removeu "<<v<<endl;
 delete q;
 } 
 else{
 while(q!=pos){
 aux=q; 
 q=q->prox;
 } 
 v = q->Valor;
 aux->prox=q->prox;
 delete q;//libera memoria de q
 cout<<"removeu "<<v<<'\n';
 }
} 
 
void mostra(Lista *lista){
 if(!Vazia(lista)){
 No *aux; 
 aux=lista->inicio;
 while(aux!=NULL){
 cout<<aux->Valor<<' ';
 aux=aux->prox;
 }
 cout<<endl;
 }
 else
 cout<<"lista vazia\n";
}
void mostrap(Lista *lista){
 if(!Vazia(lista)){
 No *aux; 
 aux=lista->inicio;
 while(aux!=NULL){
 cout<<aux<<" ";
 aux=aux->prox;
 }
 cout<<endl;
 }
 else
 cout<<"lista vazia\n";
}
void Insere_Ordem(int x, Lista *lista){
 if(Vazia(lista))
 Insere_Inicio(x, lista);
 else{
 No *aux1,*aux2;
 aux1=new No;//aloca memoria para aux
 aux1->Valor = x;
 aux2=lista->inicio;
 int i=1;
 while ((aux2!=NULL)&&(aux2->Valor<x)){
 aux2=aux2->prox;
 i++;
 }
 if(aux2==NULL)
 Insere_Fim(x,lista);
 else
 Insere_Meio(x,lista,i); 
 }
}
void destruir_lista(Lista *lista){
 No *aux;
 while(lista->inicio!=NULL){
 aux=lista->inicio;
 lista->inicio=lista->inicio->prox;
 free(aux);
 }
 free(lista->inicio);
}#include "bibliotecaListaPonteiro.h"
int main(){
 srand(time(NULL));
	Lista *lista;
	lista= new Lista;
	int x;
	IniciaLista(lista);
	for(int i=0; i<20;i++){
 x= rand	() %100 + 1;
	 Insere_Ordem(x, lista);	
 }
	mostra(lista);
	No *p;
 int pos;
 cout<<"Digite a posicao do ponteiro a remover: ";
	cin>>pos;
	p=lista->inicio;
 if (pos>1)
 for(int i=1;i<pos;i++)
 p=p->prox;// para chegar no ponteiro da posicao pos
 Remove_Ponteiro(lista, p);
	mostra(lista); 
 system("pause");
}
Apresentação do resultado:

Outros materiais