Ir para conteúdo
Fórum Script Brasil
  • 0

Criar Lista atravez de vetores


Christopher Suffi

Pergunta

Boa Noite

Galera preciso de uma ajuda com esse programinha...

alguém consegue me dar um norte ou uma luz ?

Criar Lista através de Vetores

1. Acrescente a função de inserir um elemento em uma posição específica no TAD lista através de vetores. INSERE

2. Acrescente a função de retirar um elemento qualquer no TAD lista através de vetores. RETIRA

3. Acrescente a função de listar a lista em ordem contrária, ou seja, do último para o primeiro elemento. LISTA

Lista através de Ponteiros

4. Crie um TAD lista, agora utilizando ponteiros. A TAD deve conter a função Inserir um elemento, Retirar um elemento, Listar todos os elementos em ordem contrária.

5. Acrescente ao TAD lista através de ponteiros para Retirar um elemento da lista e para consultar um elemento na lista.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Claro, consigo te ajudar sim... Mas como você disse, posso ajudar... Não posso fazer tudo! :)

Eu preciso que você faça algo para eu ir te mostrando onde está errado e o que precisa ser feito para corrigir.

Se eu fizer para você não estaria te ajudando mas sim te atrapalhando! Veja que você está reconhecendo que não sabe programar. É como uma bola de neve: se não segurar no começo ela vai ficando grande e uma hora não tem mais o que fazer! Tente aprender enquanto há tempo! ;)

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde!

Nunca programou? Pelo que foi pedido não é algo tão simples...

Por isso que eu sempre comento que resolver os exercícios para alguém não é ajudar mas sim atrapalhar!

Acho que a sua bola de neve já cresceu bastante!

Sinceramente eu não sei como te ajudar sem fazer para você...

Você nunca programou nem na escola? Nunca compilou um programa?

Vamos fazer o seguinte: eu posso até fazer para você mas eu quero que você consiga algumas coisas:

1- Instalar uma IDE em um computador. Procure por dev-c++ na internet e instale.

2- Eu faço uma parte, te explico o conceito e você vai fazer alguns ajustes no código e compilar aí.

3- Você vai me enviar de volta a saída da compilação e a saída do programa.

Por favor, não interprete isso como um castigo, "vingança" ou arrogância... Eu só quero te dar um empurrãozinho e uma motivação para aprender algo. Por mais que você diga que isso não é necessário para a função que você escolheu, facilita a sua comunicação com programadores e até mesmo ajuda no raciocínio! :)

Assim que você instalar a IDE, avise para que eu possa começar a te mandar os códigos.

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, Christopher.

Agora que você tá com o DEV instalado, tente programar alguma coisa aê.

Aqui no fórum tem muitos códigos prontos. Tente rodá-los, principalmente os do Rocco, que são quase auto-explicativos.

Após entendê-los, tente compilar o das cartas.

Estamos aqui para ajudar(o Marcelo mais que eu, afinal ele sabe MUITO mais xD).

W. Rodrigo

Universidade de Brasília - UnB

Graduando - CiC

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde a todos!

Primeiro wrodrigounb: ninguém sabe tão pouco que não possa ensinar e ninguém sabe tanto que não possa aprender. Eu com certeza ainda preciso aprender muito! :)

Christopher:

Desculpe não responder antes, não consegui entrar ontem.

Cara... amanhã pela manhã???? Realmente bem difícil!

O que é esse cartas que você falou? É aquele meu exemplo do jogo paciência? Se for, pode usar ele. Aquela estrutura CardList é uma TAD com ponteiros.

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

  • 0

O Que acham ? algo a mudar ou melhorar ?

//Crie um TAD lista, agora utilizando ponteiros. A TAD deve conter a função para Inserir um elemento, Retirar um elemento, Listar todos os elementos em ordem contrária

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

struct no{

struct no * prox;

int valor;};

int inserir(no ** l, int val, int * qnt);

int listar(no * l);

int apagar(no ** l, int * qnt);

void menu(){

printf("\ 1- Insere");printf("\n 2- Remove");printf("\n 3- Lista");printf("\n 4- Exit");printf("\n\nValor: ");}

int main(){

char opcao;

int v,erro = 0,numero=0;

no * lista = NULL;

while(1){

system("cls");

menu();

scanf("%c",&opcao);

if(opcao == '1'){

system("cls");

printf("\nDigite o valor a ser inserido: ");

scanf("%i",&v);

erro = inserir(&lista,v,&numero);

}else if(opcao == '2')apagar(&lista,&numero);

else if(opcao == '3')erro = listar(lista);

else if(opcao == '4')exit(1);

else if(erro == 0) printf("\n\nERROR: Digite uma das opcoes acima"), system("pause>nul");}}

int inserir(no ** l, int val, int * qnt){

no * novo;

novo = (no *) malloc(sizeof(no));

if((*l) == NULL){

(*l) = novo;

novo->valor = val;

(*l)->prox = NULL;

}else{

novo->valor = val;

novo->prox = (*l);

(*l) = novo;}

(*qnt)++;

return 1;}

int listar(no * l){

int i = 0;

system("cls");

if(l == NULL){

printf("lista inexistente para consulta\n");

system("pause");}

else{

while(l != NULL){

i++;

printf("\nPOS: %i Valor: %i",i,l->valor);

l = l->prox;}}

system("pause>nul");

return 1;}

int apagar(no ** l, int * qnt){

no * aux, *aux2;

int pos, i = 1;

aux = aux2 = (*l);

if((*l) == NULL){

printf("Lista Inexistente para remover\n");

system("pause");}

else{

system("cls");

printf("Digite a posicao para ser apagada: ");

scanf("%i",&pos);

if(pos <= *qnt && pos > 0){

if(pos == 1){

(*l) = (*l)->prox;

free(aux);

free(aux2);

(*qnt)--;

if((*qnt) == 1){

(*l) = NULL;}}

else{

if(pos == 2){

aux = aux->prox;

(*l) = aux2->prox;

free(aux2);

(*qnt)--;}

else{

while(i != pos-1){

aux = aux->prox;

aux2 = aux2->prox;

i++;}

aux = aux->prox;

aux2->prox = aux->prox;

free(aux);

(*qnt)--;}}}

else{

system("cls");

printf("Quantidade inexistente na lista\n");

system("pause");}

return 1;}}

//Acrescente ao TAD lista através de ponteiros funções para Retirar um elemento da lista e para consultar um elemento na lista.

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

struct no{

struct no * prox;

int valor;};

int inserir(no ** l, int val, int * qnt);

int listar(no * l);

int apagar(no ** l, int * qnt);

int listar_elemento(no * l);

void menu(){

printf("\ 1- Insere");printf("\n 2- Remove");printf("\n 3- Lista");printf("\n 4- Lista");printf("\n 5- Exit");printf("\n\nValor: ");}

int main(){

char opcao;

int v,erro = 0,numero=0;

no * lista = NULL;

while(1){

system("cls");

menu();

scanf("%c",&opcao);

if(opcao == '1'){

system("cls");

printf("\nDigite o valor a ser inserido: ");

scanf("%i",&v);

erro = inserir(&lista,v,&numero);}

else if(opcao == '2')erro = apagar(&lista,&numero);

else if(opcao == '3')erro = listar(lista);

else if(opcao == '4')erro = listar_elemento(lista);

else if(opcao == '5')exit(1);

else if(erro == 0) printf("\n\nERROR: Digite uma das opcoes acima"), system("pause>nul");}}

int listar_elemento(no * l){

int buscar,i=0;

system("cls");

if(l == NULL)printf("\nNao existe lista!");

else{

printf("Digite o elemento a ser buscado: ");

scanf("%i",&buscar);

while(l != NULL){

if(l->valor == buscar){i++;}

l = l->prox;}

printf("\n elemento não Encontrado",i);}

system("pause>nul");

return 1; }

int inserir(no ** l, int val, int * qnt){

no * novo;

novo = (no *) malloc(sizeof(no));

if((*l) == NULL){

(*l) = novo;

novo->valor = val;

(*l)->prox = NULL;}

else{

novo->valor = val;

novo->prox = (*l);

(*l) = novo;}

(*qnt)++;

return 1;}

int listar(no * l){

int i = 0;

system("cls");

if(l == NULL){

printf("Lista inexistente para Consulta\n");

system("pause");}

else{

while(l != NULL){

i++;

printf("\nPOS: %i Valor: %i",i,l->valor);

l = l->prox; } }

system("pause>nul");

return 1;}

int apagar(no ** l, int * qnt){

no * aux, *aux2;

int pos, i = 1;

aux = aux2 = (*l);

if((*l) == NULL) {

printf("não existe lista para voce remover\n");

system("pause");}

else{

system("cls");

printf("Digite a posicao para ser apagada: ");

scanf("%i",&pos);

if(pos <= *qnt && pos > 0){

if(pos == 1){

(*l) = (*l)->prox;

free(aux);

free(aux2);

(*qnt)--;

if((*qnt) == 1){

(*l) = NULL;}

}else{

if(pos == 2){

aux = aux->prox;

(*l) = aux2->prox;

free(aux2);

(*qnt)--;}

else{

while(i != pos-1){

aux = aux->prox;

aux2 = aux2->prox;

i++;}

aux = aux->prox;

aux2->prox = aux->prox;

free(aux);

(*qnt)--;}}}

else{

system("cls");

printf("Voce digitou uma quantidade inexistente na lista\n");

system("pause");}}

return 1;}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...