\documentclass{article}
\usepackage{pst-tree}

\makeatletter

\newcount\@Bernoudepth
\newcount\@Bernoumaxdepth

\newcommand\Bernoutree[8][treemode=R,nodesep=1ex,levelsep=12ex]{%
  % #2 = profondeur de l'arbre
  % #3 = nom de l'évènement réussite
  % #4 = nom de l'évènement échec
  % #5 = proba de l'événement réussite
  % #6 = placement de #5
  % #7 = proba de l'évènement échec
  % #8 = placement de #7
  \begingroup
  % initialise paramètres
  \psset{treemode=R,nodesep=1ex,levelsep=12ex}%
  \psset{#1}%
  \@Bernoumaxdepth #2\relax
  \def\@Reussite{#3}%
  \def\@Echec{#4}%
  \def\@probareussite{#5}%
  \def\@Argreussite{#6}%
  % Si pas de spécification de placement,
  % on place au centre
  \ifx\empty\@Argreussite
    \def\@Argreussite{0.5}%
  \fi
  \def\@probaechec{#7}%
  \def\@Argechec{#8}
  \ifx\empty\@Argechec
    \def\@Argechec{0.5}%
  \fi
  % Premier appel (racine vide, niveau 1)
  \pstree{\TR{}}{\@Bernoutree{1}}
  \endgroup
}
\newcommand\@Bernoutree[1]{%
  % #1 = profondeur récursive
  % initialise profondeur en cours
  \@Bernoudepth #1\relax
  \ifnum\@Bernoudepth=\@Bernoumaxdepth
    % si la profondeur max est atteinte
    % on place les deux noeuds terminaux
    \TR{\@Reussite}\taput[tpos=\@Argreussite]{\@probareussite}
    \TR{\@Echec}\tbput[tpos=\@Argechec]{\@probaechec}
    % et c'est tout
  \else
    % sinon on construit récursivement
    % les deux sous-arbres de niveau supérieur
    \advance\@Bernoudepth \@ne
    \pstree{\TR{\@Reussite}\taput[tpos=\@Argreussite]
           {\@probareussite}}{\@Bernoutree{\the\@Bernoudepth}}
    \pstree{\TR{\@Echec}\tbput[tpos=\@Argechec]
           {\@probaechec}}{\@Bernoutree{\the\@Bernoudepth}}
  \fi
}
\makeatother

\pagestyle{empty}

\begin{document}
\Bernoutree{3}{$A$}{$\bar{A}$}{$p$}{0.4}{$1-p$}{0.2}

\Bernoutree[levelsep=18ex,treenodesize=0pt]{4}{$R$}{$E$}{$p$}{}{$q$}{}

\end{document}

