IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

gestion d'une liste


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 857
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 857
    Par défaut gestion d'une liste
    Bonjour,

    Je fais un programme sur un µControlleur donc je suis assez limité en RAM et en puissance de calcul.

    J'ai 2 listes (list1, list2) à créer dans une zone mémoire de taille fixe.
    La taille de chaque élément pour une liste donnée est fixe mais les éléments de list1 n'ont pas la même taille que ceux de list2 (7 octets et 11 octets).

    La list1 fait référence à des éléments qui sont dans la list2. Je dois régulièrement ajouter/supprimer/modifier des éléments (je n'ai pas besoin que la gestion de l'affichage de tous mes éléments soit rapide car je ne le ferais pas souvent) :Il me semble donc que pour facilement la recherche d'éléments, il faut que je range mes liste par ordre croissant (en fonction de certains champs).

    Quelle méthode me conseillez-vous de faire pour gérer ces deux listes (il faut que l'ajout/suppression/recherche d'élément soit le plus rapide possible) ? comment gérer ma zone mémoire (c'est un tableau static d'unsigned char) ?

    merci d'avance,

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    C'est beaucoup trop vague pour qu'on puisse t'aider. En quoi consiste l'insertion d'élément ? La recherche d'élément ?

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 857
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 857
    Par défaut
    Bonjour,

    C'est pour faire une table d'adressage MAC. Je dois affecter chaque adresse MAC dans un groupe en fonction de certains paramètres. Et je dois supprimer un groupe s'il ne contient plus d'adresse MAC.
    Chaque adresse MAC à un timeout : une fois le timeout écoulé, je la supprime de la liste (le timeout peut être remis à jour).
    => c'est pour faire du filtrage (c'est très spécifique)

    => je pensais partir sur une liste doublement chainée et reclasser ma liste a chaque ajout d'une nouvelle entrée (je ne sais pas si c'est la meilleur méthode)

  4. #4
    Membre éclairé Avatar de saad.hessane
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 315
    Par défaut
    En fait tout dépend de ce que tu veux entendre par recherche. Les listes sont adaptés pour faire des FIFO ou LIFO. Donc insertion et suppression en tête ou en queue très rapide. Mais pour la recherche c'est pas très top. Si le nombre de tes données est assez significatif tu pourrais te tourner vers une structure en arbre (b-tree) ou table de hashage.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 857
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 857
    Par défaut
    merci mais ça me semble un peu lourd pour ce que je veux faire : j'aurais moins de 1000 éléments à trier.

    Ce que je veux faire c'est simplement ajouter/supprimer des éléments (la clef sera l'adresse MAC) dans un groupe (la clef sera une adresse IP) et supprimer/créer des groupes.
    Chaque élément à une propriété que je dois mettre à jour régulièrement => c'est l'action qui sera faite le plus souvent.
    => je cherche à faire celà le plus rapidement possible

    ----------------------------------------
    Chaque groupe a une propriété "TimeOut"
    Chaque adresse MAC a une propriété "Count"

    1- à un instant t, j'initialise "TimeOut" pour un groupe donné et "Count" pour toutes les adresse MAC associées (un groupe aura au maximum 64 adresses MAC associées)
    => si le groupe n'existe pas, je le crée (pas d'adresses MAC associées) et j'initialise "TimeOut"

    2- régulièrement je dois mettre le "TimeOut" à jours de tous mes groupes
    => une fois un des "TimeOut" terminé, je dois récupérer la valeur de "Count" de toutes les adresses MAC associées. S'il n'y a pas d'adresse MAC associé au groupe, je dois le supprimer.

    3- pendant ce temps, je peux avoir des demandes d'ajout/suppression d'un élément "adresse MAC" à un groupe ou de la mise à jour de la valeurs "Count"

Discussions similaires

  1. Model Driven ? Data Driven ? Gestion d'une liste a usage multiple
    Par dolanor dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 13/01/2008, 21h51
  2. [MySQL] formulaire automatisés pour gestion d'une liste
    Par Larffas dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/10/2007, 13h01
  3. [MCD] Gestion d'une liste de matériels
    Par joker vb dans le forum Schéma
    Réponses: 4
    Dernier message: 15/09/2007, 01h34
  4. gestion d'une liste d'enseignants
    Par Lio 2 dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2007, 20h47
  5. Gestion d'une liste box
    Par norwy dans le forum Windows
    Réponses: 6
    Dernier message: 01/11/2005, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo