begin process at 2012 02 09 14:00:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Arbre équilibré


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Arbre équilibré

samedi 17 mai 2003 à 23:58:57 | Arbre équilibré

Pallas4

Bonjour j'aimerais programmé un arbre équilibré maismon programme plante. IP cute me dit que des données sont dans le tas mais ne peuvent être atteintes.
Je sais que le listing ci dessous est incomplet, il en manque la moitiée mais dans l'exemple que je prnd, ç ne pose pas de pb.

Program Arbreseq;


type parbre=^arbre;
arbre=record nom:string; {$V 0:40}
bal:integer; {$V 40:60}
g,d:parbre;
end;
var a,b:parbre;
cons,voy:string;
bo:boolean;

function creer(s:string):parbre;

begin
new(result);
result^.nom:=s;
result^.d:=nil;
result^.g:=nil;
result^.bal:=0;
end;

function insere(cle:string;var p:parbre):boolean;
var a:parbre;
begin
new(a);
if p=nil then begin
p:=creer(cle);
result:=true
end
else if p^.nom<cle then begin
if insere(cle,p^.d) then begin
p^.bal:=p^.bal-1;
If p^.bal=0 then result:=false
else if p^.bal=-1 then begin
a:=p;
p:=p^.g;
a^.g:=p^.d;
p^.d:=a;
dispose(a);
result:=false
end
else if p^.bal=-2 then begin
if p^.g^.bal=-1 then begin
a:=p;
p:=p^.g^.d;
a^.g:=p^.d;
p^.g:=a;
p^.d:=a^.d;
dispose(a);
result:=false
end
end
else result:=false
end
else begin
if insere(cle,p^.g) then begin
p^.bal:=p^.bal-1;
If p^.bal=0 then result:=false
else if p^.bal=-1 then begin
a:=p;
p:=p^.g;
a^.g:=p^.d;
p^.d:=a;
dispose(a);
result:=false
end
else if p^.bal=-2 then begin
if p^.g^.bal=-1 then begin
a:=p;
p:=p^.g^.d;
a^.g:=p^.d;
p^.g:=a;
p^.d:=a^.d;
dispose(a);
result:=false
end
end
end
else result:=false
end
end;

end;


BEGIN


// Là je créé un arbre d'exemple
a:=creer('h');
a^.g:=creer('e');
a^.d:=creer('k');
a^.d^.d:= creer('o');
a^.d^.g:= creer('n');
a^.g^.d:=creer('g');
a^.g^.g:=creer('c');
a^.g^.d^.g:=creer('f');
a^.bal:=-1;
a^.g^.bal:=-1;
a^.g^.d^.bal:=-1;

bo:=insere('p',a);
dispose(a);
dispose(b);
END.

Merci






Cette discussion est classée dans : creer, end, begin, result, bal


Répondre à ce message

Sujets en rapport avec ce message

Le plus petit entier non nul [ par seast ] Bonjour,voici la fonction qui me permet de trouver le plus petit entier non nul parmi 3 possibilités.Y a-t-il plus simple ? ou plus rapide ?Si je desi openoffice.org(ooo) et la couleur de fond d'une cellule [ par Tiekula ] J'arrive a ouvrir un fichier exel avec ooo mais pas a trouver la couleur d'une cellule donnée de ce fichier! mon code : unit Unit1; interface use Composant [ par cricri_forever ] Quelqu'un pourrait m'aider a expliquer ce code et si il a moyen de le simplifier encore...procedure TVersion.ChangeVersionResult(Value: boolean);begin Fenetre MDI [ par develomagaly ] VOila j'ai une fenetre parents avec des fenetres Mdichild qui s'ouvre en cliquant sur le menu. Le but est de ne pas pouvoir ouvrir deux fenetres fille pb sur delphi a la compilation need help !!! [ par shark1664 ] voila mon code c'est une requete qui récupère dans une table une ligne compète quand le code est pareil que ce que l'utilisateur a siasie et au niveau Exclure des caractères d'un string [ par DRJEROME ] bonjour,je n'ai pas accès au "Snippets" de mon ordinateur principal alors que j'ai accès par un ordinateur d'un collègue ... bizarre !je voulais juste Txt2BMP ? [ par MiniProgramer ] Hij ai une Function de google mais il ya des problemes !?//-- TBitmap to String -----------------------function BmpToTxt(const ABitmap: TBitmap): stri TSearchRec et les idtagmp3 [ par eclems ] Bonjour existe t il une fonction qui et avec TSearchRec pour afficher les idtag dans un tlistview en utilisant cette unté unit cmxMP3; interface us Rafraichissement DBGrid [ par Juju1988 ] Bonjour à tous, J'ai un petit soucis j'ai un DBGrid qui m'affiche des scanners via un OracleDataSet et qui me dessine des cases à cocher cochées ou n Actualiser/Refresh IconCache [ par AgentAmine ] Salut tt, je cherche un code pour actualiser le IconCache, malheureusement, il n'existe pas un API, mé j'ai trouve un code que me permet de faire ca,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,404 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales