salut tt monde
j'ai fait un programme qui faire le code RLE et je dois faire le codage huffman sur ce tableau mais comment faire une arbre sous MATLAB
voici mon code
Code:
clc
clear all
v=[0 0 0 2 1 5 5 5 5 5 2 2 2 1 1  ] %exemple de tab []
cpt=1;
f=[];
m=1;
for i=1:numel(v)-1
         if v(i)==v(i+1)
             cpt=cpt+1;
         else
             N(m)=v(i);
             R(m)=cpt;
             m=m+1;
             cpt=1;
         end
            if v(numel(v))==v(numel(v)-1)
                 N(m)=v(numel(v));
                 R(m)=cpt;
            else
                 N(m)=v(numel(v));
                 R(m)=1;
           end
 end
%crée  2 tabs 1 pour le nombre et 2 pour le nombre d'itération dans tout la tab
NO=[];
 m=1;
 bool=0;
   for i=1:numel(R)
       sum=R(i);
       for j=i+1:numel(R)
          if N(i)==N(j)
               sum=sum+R(j);
          end
       end
       for k=1:length(NO)
           if NO(k)==N(i)
               bool=1;
           end
       end
       if bool==0
               NO(i)=N(i);
               REP(i)=sum;
       end
       
       
   end
  if N(numel(N)-1)~=N(numel(N))&& (bool~=1)
               NO(numel(NO)+1)=N(numel(R));
               REP(numel(REP)+1)= R(numel(R));
  end  
%triee
 for i=1:numel(REP)-1
      for j=i+1:numel(REP)-1
         if REP(i)>REP(j+1)
             d=REP(i);
             REP(i)=REP(j+1);
             REP(j+1)=d;
             d=NO(i);
             NO(i)=NO(j+1);
             NO(j+1)=d;
         end
      end
 end
 if REP(numel(REP)-1)> REP(numel(REP))
             d=REP(numel(REP)-1);
             REP(numel(REP)-1)=REP(numel(REP));
             REP(numel(REP))=d;
             d=NO(numel(REP)-1);
             NO(numel(REP)-1)=NO(numel(REP));
             NO(numel(REP))=d;
 end