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.833 Comentários

  1. Пользовательские фильтры помогают отсортировать игры по студиям и новинкам, экономя время на поиске.
    888strz 888strz.

  2. 888starz تحديث
    تتميز المنصة بواجهة أنيقة وسهلة التصفح مما يسهل على الأعضاء الوصول إلى المحتوى.

    القسم الثاني:
    تعمل المنصة على إضافة إصدارات جديدة وباقات ترويجية تجذب لاعبين جدد وتحافظ على اهتمام الموجودين.

    القسم الثالث:
    تمنح المنصة عشّاق الرياضة إمكانيات مراهنة مباشرة قبل المباريات وخلالها مع تحديثات حية للنتائج.

    القسم الرابع:
    تتوفر في المنصة طرق دفع متعددة تلبي احتياجات المستخدمين في مناطق مختلفة.

  3. جرب الحظ الآن على موقع 8888 للفوز بجوائز مثيرة ومباشرة.
    تتفرد المنصة بواجهة استخدام واضحة وسهلة التعامل.

    الفقرة الثانية:
    الخدمات تشمل ألعاب الكازينو والرياضات الافتراضية والعروض الترويجية.

  4. يخضع الموقع الرسمي لترخيص دولي يضمن حماية كاملة لحسابات اللاعبين.
    يوفر الموقع الرسمي أكثر من ثلاثمائة طاولة مباشرة للعب مع موزعين حقيقيين طوال اليوم.
    تتوفر احتمالات قوية ورهان مباشر مع متابعة فورية للنتائج والإحصائيات.
    888starz https://bbhscanners.com/
    يقدم الموقع الرسمي مكافآت دورية مثل كاش باك 50% وعروض تأمين متنوعة.
    يتوفر فريق خدمة العملاء 24/7 بالعربية والإنجليزية من خلال المحادثة المباشرة والبريد الإلكتروني.

  5. Rasmiy sayt mahalliy foydalanuvchilar uchun o’zbekcha til va qulay navigatsiyani taqdim etadi.
    888starz uz https://oerknal.org/
    Rasmiy saytda jonli kazino va faqat 888starzga xos 888Games o’yinlari alohida o’rin egallaydi.
    Foydalanuvchilar yirik xalqaro turnirlar va mahalliy chempionatlarga stavka qo’yishlari mumkin.
    Bonusni to’liq olish uchun ro’yxatdan o’tishda 888UZ777 promokodidan foydalanish tavsiya etiladi.
    Ro’yxatdan o’tish telefon raqami yoki email orqali bir necha daqiqada amalga oshiriladi.

  6. O’yinchilar saytdan brauzer, Android yoki iOS ilovasi orqali bemalol foydalanishlari mumkin.
    Eksklyuziv 888Games seriyasi va jonli stollar haqiqiy o’yin atmosferasini yaratadi.
    888starz uz 888starz uz
    888starz eng muhim o’yinlarni raqobatbardosh koeffitsiyentlar bilan qamrab oladi.
    Yangi foydalanuvchini 1500 evrogacha xush kelibsiz bonusi hamda 150 FS kutadi.
    Qo’llab-quvvatlash xizmati kun bo’yi bir nechta aloqa kanali orqali javob beradi.

  7. 888starz rasmiy sayti kazino va sport bo’limlariga to’liq kirish imkonini beradi.

    Eng mashhur va yangi o’yinlar rasmiy saytning kazino bo’limida birinchi o’rinda ko’rsatiladi.

    888starz rasmiy saytining sport bo’limi 50 dan ortiq sport turiga tikish imkonini beradi.

    888starz uz https://archevore.com/

  8. united statesn online casinos list, popular pokie machines australia and where mmorpg
    games that you can make real money (Parthenia) i
    play poker online for real money in australia, or $1 deposit
    casino usa 2021

  9. Hello there! I could have sworn I’ve visited this
    website before but after browsing through many of the posts I realized it’s new to me.
    Nonetheless, I’m certainly pleased I stumbled upon it and I’ll
    be bookmarking it and checking back regularly!

    Feel free to surf to my web site … best casinos in socal (Dominique)

Deixe um comentário

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