Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Additionner_monome(p1 : in polynome; p2: in polynome) return polynome is
- p_final, p_ins: polynome;
- begin
- --Première vérification pour regarder si on a un arbre vide, dans ce cas on retourne l'autre ; si les deux sont vides on retourne null
- if An_Vide(p2) then
- p_final:=new noeud;
- p_final.all:=p1.all;
- elsif An_valeur(p1).val = '0' then
- if An_valeur(p1).exposant+An_valeur(p2).exposant /=0 then
- p_final:= new noeud;
- p_final.all:=p1.all;
- An_Changer_Valeur(p_final,('0',An_valeur(p1).exposant+An_valeur(p2).exposant));
- else
- p_final:=An_Creer_Vide;
- end if;
- else
- if An_valeur(p1).exposant = An_valeur(p2).exposant then
- p_final:=Additionner_monome(An_Fils(p1,1),An_Fils(p2,1));
- else
- if An_Frere(p1, 1) /=null then
- p_final:=Additionner_monome(An_Frere(p1,1),p2);
- else
- p_ins:= new noeud;
- p_ins.all:=p2.all;
- p_final:= new noeud;
- p_final.all:=p1.all;
- An_Inserer_Frere(p_final, p_ins);
- end if;
- end if;
- end if;
- return p_final;
- end Additionner_monome;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement