Ir ao conteúdo

Lista com ponteiros, Estrutura de Dados.

Boa noite a todos,

Como ainda não produzi nada muito bom hoje em casa (no lab produzi algo relaciona a xml-rpc que pretendo postar em breve), resolvi postar mais um dos 198578951 exercicios que estou tendo que fazer para estrutura de dados. O Exercicio de hoje é nada mais nada menos que uma implementação de uma Lista com Ponteiros, ou seja, ela não tem limite de elementos (é claro, se a memoria for infinita).

Como no exercicio anterior, o enunciado fica para a pagina inteira pois é muito grande.

O exercicio resolvido você encontra aqui.

Uma lista ordenada pode conter Strings de qualquer comprimento < 10000; • esta lista tem um número de elementos máximo fixo (100) e é implementada como um vetor de ponteiros para Strings; – utilize as rotinas de lista com vetor que você implementou para a agenda. • Um novo String é lido primeiramente para dentro de uma variável auxiliar qualquer; – então é alocada memória para exatamente o seu tamanho e ele é copiado para esta área. Para copiar um String utilize strcpy(); – por fim um lugar na lista é encontrado para ele. A posição escolhida do vetor de ponteiros da lista é instanciada através da atualização dos valores do ponteiro da posição do String na lista com o endereço do string. Pseudo-código: constantes MAXLISTA = 100; tipo tLista { // Vetor de ponteiros para caracter. caracter *dados[MAXLISTA]; inteiro último; }; • Importante: observe que criando uma variável do tipo tLista você não vai estar alocando memória para os strings a serem lidos, apenas para os ponteiros para eles. Para verificar o comprimento de um String: – utilize a função strlen(); – esta função devolve o comprimento (em caracteres imprimíveis) de um string. – Protótipo: int strlen(char *p); #include
#include
#include
char p[90] = “Carro”;
main() {
printf(“%i”, strlen(p));
}

• Imprime: 5
• Para copiar um String:
– utilize a função strcpy();
– esta função copia o conteúdo de um string (dado por um apontador) para a posição de memória dada por outro apontador.
– Protótipo: char *strcpy(char *destino, char *fonte);

#include
#include
#include
char p[90] = “Carro”;
char lata[20];
main() {
strcpy(lata, p));
printf(“s%”, lata);
}
• Imprime: Carro

Detalhes:

• Como você não sabe o comprimento do String que o usuário vai digitar, use primeiro uma variável auxiliar grande (10000 posições) para guardar o que foi
digitado;
• todas as funções de lista ordenada implementadas anteriormente devem ser reimplementadas para utilizar estes Strings;
• para a leitura de um String utilize scanf(“%s”, entrada).

Publicado emAprendendoCEstrutura de DadosSistemas Digitais

82 Comentários

  1. list of united statesn online casinos, online bingo slots uk and casinos in saskatchewan united states, or
    free games win real money no deposit uk

    Look at my web-site bgo casino – Brad

  2. all slots casino united kingdom reviews, free real online pokies united states and
    canadian online pokies reviews, or potawatami casino milwausaee wi

    My web page; blackjack dealer translation (Kathryn)

  3. bet365 roulette strategy usa, when did online gambling start in uk and united statesn online slots real money, or best online casino for slots uk

    Check out my web blog; blackjack machine odds (Hugo)

  4. You can definitely see your enthusiasm in the work you write.
    The arena hopes for even more passionate writers like you who are not afraid
    to say how they believe. At all times go after your heart.

    Visit my site: very well casino (Melba)

  5. new zealandn online casino 5 dollar min deposit, online casino
    no deposit bonus no download instant play united states and juki slot machine, or online live roulette casino
    usa

    Take a look at my webpage – biggest blackjack winning streak
    (Raymond)

  6. What you published made a bunch of sense. However, what
    about this? what if you wrote a catchier title? I mean, I don’t wish to tell you how to run your
    website, however what if you added something to possibly get folk’s attention? I mean List, with pointers, Data Structure – Matheus Bratfisch
    is a little vanilla. You ought to look at Yahoo’s front page and see how they
    create post headlines to grab viewers interested.
    You might add a related video or a related picture or two to grab readers excited
    about what you’ve got to say. Just my opinion,
    it would make your website a little livelier.

    Look at my blog – roulette am automaten tricks, Pedro,

  7. is online poker legal in united states, new zealandn original slot online free and free bonus no deposit magic diamond casino missoula
    mt (Fred) usa, or uk bingo

  8. Today, I went to the beach front with my kids. I found a sea shell and gave
    it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the
    shell to her ear and screamed. There was a hermit crab inside and it pinched
    her ear. She never wants to go back! LoL I know this is totally off topic but I had to tell someone!

    My web site … calculate craps payouts [Chanel]

  9. best online slots payout percentage usa, 20 free spins on registration usa and
    directions to potawatomi casino in foxboro ma,
    Roger, in milwaukee, or
    online slots nz real money

  10. new zealand casino no deposit bonus, crush it best online casino in pa; Wilfredo,
    casino accept usa and how to hack canadian pokies, or netent no deposit bonus nz

  11. I was recommended this blog by my cousin. I am not sure whether this post is written by him as no one else know such
    detailed about my trouble. You are amazing! Thanks!

    Stop by my website: itsc 1213 assignment 1 craps game (Wally)

  12. slots no deposit bonus uk, free casino slots how to win money in gambling
    [Candida] united states and best casino sites united states,
    or does the usa have casinos

  13. best riversweeps online casino app iphone – Madison – usa casinos, $150 free no deposit casino australia and play free games for real money uk, or bouka spins no deposit
    bonus 2021

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *