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

  1. طيب أنا بقالي تقريبًا نص سنة بشتغل على المنصة دي وحبيت أشارك اللي شفته بدل ما الناس تسأل في الخاص. الحاجة اللي لفتت نظري إن المكتبة ضخم — حوالي 8 آلاف لعبة بالتقريب، والجودة مش وحشة زي مواقع تانية. براجماتيك مسيطرة شوية وكمان NetEnt وPlay’n GO.

    أنا بقعد أطحن في Gates of Olympus، وواحد صاحبي مش بيقوم من على Book of Dead. آخر حاجة لعبتها كانت سلوتس Betsoft وكانت حلوة. بس الحاجة الوحيدة المزعجة إن البحث جوه التطبيق مش دقيق لما تفتح كل الأقسام.

    قسم الـlive أحسن حاجة عندهم — إيفوليوشن شغالة عليه، ديلرز بني آدمين والصورة نضيفة حتى لما النت بيبوظ شوية. كريزي تايم بالذات إدمان بصراحة، وفيه طاولات عربي ودي نقطة كويسة. على فكرة في بونص أول إيداع هو 100% لحد 1500 جنيه و 150 لفة مجانية بتتوزع على أيام، وشرط التدوير حوالي 35 مرة وده مش سيء مقارنة بغيرهم. شوف التفاصيل المحدثة على برنامج 888starz قبل ما تودع أي حاجة لأن الأرقام بتتبدل كل فترة.

    التسجيل أخد مني دقيقتين، والحد الأدنى للإيداع صغير — مبلغ رمزي. الإيداع والسحب متاح بـ Visa وMastercard، محافظ إلكترونية، وكريبتو وده اللي بستخدمه أنا. آخر مرة سحبت خرج بعد 3 ساعات بالـبيتكوين، لكن بالتحويل البنكي بياخد وقت أطول.

    من التليفون مفيش مشاكل — تثبيت الـapk من الموقع الرسمي ومحتاج تفعل تثبيت المصادر غير المعروفة. التحديث بيجيلك إشعار وده مريح. السبورت شغال طول الوقت بس ساعات بيردوا بإنجليزي الأول. الرخصة من كوراساو ومعروف إنه مش صارم زي مالطا، يعني خليك واعي وحط ليمت لنفسك.

Deixe um comentário

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