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

Décisions SGBD Discussion :

Déplacement d'un élément dans un arbre intervallaire


Sujet :

Décisions SGBD

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 43
    Points : 41
    Points
    41
    Par défaut Déplacement d'un élément dans un arbre intervallaire
    je cherche un algo pour déplacer une branche de mon arbre intervallaire mais je ne trouve pas . Je crois que ce qu'il faut c'est une insertion au préhalable pour ensuite faire une suppression mais il y a quelques soucis qui sont dur à expliquer , si quelqu'un a déjà réalisé une telle fonction , peut il m'aider ???
    MERCI parcque là mon cerveau ne tourne plus rond depuis le temps que je cherche...

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Salut,

    je veut bien t'envoyer la procédure adéquate, mais en mail privé.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Re: Déplacement d'un élément dans un arbre intervallaire
    Citation Envoyé par Larson
    je cherche un algo pour déplacer une branche de mon arbre intervallaire mais je ne trouve pas . Je crois que ce qu'il faut c'est une insertion au préhalable pour ensuite faire une suppression mais il y a quelques soucis qui sont dur à expliquer , si quelqu'un a déjà réalisé une telle fonction , peut il m'aider ???
    MERCI parcque là mon cerveau ne tourne plus rond depuis le temps que je cherche...
    Personnellement, j'ai opté pour la technique suivante...

    Dans mon interface j'ai des fleches de classement, permettant de tasser une branche de 1 position vers la gauche ou vers la droite sur le même niveau...
    Evidemment, l'ordre des noeuds déjà a la toute gauche ou déjà à la toute droite ne peuvent pas être modifié vers ces cotés...

    Donc l'idee c'est de prendre les deux intervalles de chaque élément de la branche de droite à tasser vers la gauche et a leur soustraire le nombre d'élément multiplié par 2, présent dans l'arbre de gauche

    et de faire le contraire

    de prendre les deux intervalles de chaque élément de la branche de gauche à tasser vers la droite et a leur additionner le nombre d'élément multiplié par 2, présent dans l'arbre de droite

    Pour éviter le chevauchement de valeur, je commence de droite vers gauche... auquel j'enleve la valeur de 100000 (si vos intervalles dépassent le million, alors ajouter quelques "0" a ce chiffre) aux intervalles de facon a obtenir des valeurs négatives... puis je fais de gauche a droite et dans un troisieme temps j'ajoute un million au valeur negative pour les rappatrier dans le pool exact d'intervalles.

    J'ai utilisé l'algo suivant pour ordonner de gauche vers la droite...

    pour la colonne de droite
    [Nbr_BG_F est le nombre d'élément présent dans la colonne de gauche, J'ai ajouté un -1000000 pour "sortir" temporairement les donnees du set de data modifiable]
    "Update data Set NFM_BG = (NFM_BG-"&(Nbr_BG_F*2)&")-1000000, NFM_BD = (NFM_BD-"&(Nbr_BG_F*2)&")-1000000 where NFM_BG>="&NFM_BG&" and NFM_BD<="&NFM_BD

    Pour la colonne de gauche
    [Nbr_BD_F est le nombre d'élément présent dans la colonne de Droite,
    NFM_BG_F et NFM_BD_F sont les intervalles utilisé par la racine de l'intervalle de gauche]
    "Update data Set NFM_BG = (NFM_BG+"&(Nbr_BD_F*2)&"), NFM_BD = (NFM_BD+"&(Nbr_BD_F*2)&") where NFM_BG>="&NFM_BG_F&" and NFM_BD<="&NFM_BD_F

    Et la transformation finale de la colonne de droite
    "Update data Set NFM_BG = NFM_BG+1000000, NFM_BD = NFM_BD+1000000 where NFM_BG<0"


    Ont peut trouver les intervalles utilisé par la racine de l'intervalle de l'arbre de gauche en cherchant la donnee dont l'intervalle de droite est egale a (l'intervalle de gauche - 1) de notre donnee cible (l'arbre de droite)



    ....
    Je me relis présentement, et je ne me trouve pas tres clair, mais l'essentiel a retenir c'est qu'il faut modifier les intervalles de la branche de gauche en aditionnant a ses intervalles le (nbr d'élément dans l'arbre de droite*2) et vice-versa pour la branche de droite (en soustrayant bien sur le nbr d'élément présent dans l'arbre de gauche*2)

  4. #4
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    tu parles d'une procédure qui te permet de déplacer un sous arbre dans un arbre intervallaire. je cherche à faire cette fontion mais je n'y arrive pas. Pourrais-tu m'aider ?

    Merci d'avance.

Discussions similaires

  1. Algorithme de suppression d'un élément dans un arbre binaire de recherche
    Par mohsenuss91 dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 24/12/2011, 12h05
  2. Sélection d'un élément dans un arbre EMF
    Par darkman19320 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 28/07/2011, 15h14
  3. Réponses: 1
    Dernier message: 21/03/2008, 12h32
  4. [DOM] Déplacer un élèment dans l'arbre HTML
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/08/2007, 19h28
  5. Réponses: 4
    Dernier message: 17/10/2005, 14h23

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