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

1.832 Comentários

  1. Ima Ima

    no deposit max bet casino wins (Ima) bonus codes cashable 2021 usa, play free australian poker machines and
    best payout gambling sites usa, or big poker
    tournaments in australia

  2. free chip no deposit bonus codes 2021 canada, poker australia tournaments and united statesn crown macau casino ho (Larae) slots
    online, or free bonus casino uk

  3. Rasmiy 888starz sayti O’zbekistonda kazino va sport dunyosini bir manzilda jamlaydi.

    Eksklyuziv 888Games to’plamida Crash, Dice, Plinko va Lottery kabi tez o’yinlar bor.

    Rasmiy saytda futboldan kibersportgacha keng sport ro’yxati taqdim etiladi.

    Sportga tikuvchilarga 100% xush kelibsiz bonus 100 evroga qadar ochiladi.

    Saytda fiat va kripto usullari past minimal depozit bilan mavjud.

    888starz вход 888starz вход

  4. 888starz 888starz
    يفتح 888starz أمام لاعبي مصر بوابة رسمية واحدة تجمع آلاف الألعاب وعشرات الرياضات.

    يتيح 888starz أكثر من مئتين وخمسين طاولة روليت وبلاك جاك مباشرة في أي وقت.

    تتغير الأودز في الوقت الفعلي مع خيار المراهنة أثناء اللعب.

    ويحصل المراهن الرياضي على مكافأة 100% تصل إلى 100 يورو.

    يوفر 888starz الدفع عبر Visa و Mastercard و Skrill والكريبتو المتنوع بحد إيداع منخفض.

  5. 20 Super Hot is a classic fruit slot from EGT that brings a retro Vegas feel to players in the UK and the US.
    The red seven is the top-paying symbol and rewards the biggest line wins.
    20 super hot 20 super hot
    Players should expect swings, as the game leans toward bigger but rarer wins.
    Flexible stake options make the game accessible to small and large budgets alike.
    A free demo version lets players try the slot before wagering real money.

  6. 888starz ofrece un diseño claro en español y un menú multilingüe fácil de usar.

    El casino en vivo cuenta con más de 250 mesas atendidas por crupieres reales las 24 horas.

    888starz permite apostar en decenas de deportes, incluidos UFC, Dota 2 y CS:GO.
    888starz bet 888starz bet
    Además, el sitio ofrece cashback, apuestas gratuitas y torneos periódicos.

    888starz ofrece un registro rápido en pocos pasos y con un depósito mínimo reducido.

Deixe um comentário

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