
    Gd                        d Z ddlZdZdZi deez   deedz  z   deez   ez   ez   d	eed
z  z   deded
z  ez   ez   ded
z  ez   dedz  ded
z  deedz  z   deez   ez   deez   ed
z  z   ded
z  deez   dedz  deed
z  z   ez   ded
z  ez   ez   eez   ez   edz  eed
z  ez   edz  ez   eed
z  z   eed
z  z   ez   eez   ed
z  z   ed
z  ed
z  z   d	Z e ee                                d                     Z	d e                                D             Z
de
d<    ej                    Ze	                                D ]3\  ZZedd         Ze                    e
e         eed                    4 e ej        e                    D ]\  ZZeD ]Zeej        e         d <    ej        ed d!"          ZeD ]Zee         dxx         dz  cc<    ej        eed#$           d% e                    d&'          D             Z ej        eee(           d) ZddlZej         D ]Z! ee!          ee!         k    sJ  e"d*#                    d+ d,D                                  dS )-a  
==========
Morse Trie
==========

A prefix tree (aka a "trie") representing the Morse encoding of the alphabet.
A letter can be encoded by tracing the path from the corresponding node in the
tree to the root node, reversing the order of the symbols encountered along
the path.
    Nu   •u   —ab   cd   efgh   ijklmnopq)	rstuvwxyzc                 <    t          | d                   | d         fS )N   )len)items    8share/doc/networkx-3.1/examples/graph/plot_morse_trie.py<lambda>r%   4   s    3tAw<<a:Q     )keyc                     i | ]\  }}||	S  r)   ).0r   r   s      r$   
<dictcomp>r+   8   s    AAADAq1aAAAr&    )charlayer
horizontal)
subset_keyalignT)poswith_labelsc                      i | ]\  }}}||f|S r)   r)   )r*   r   r   r   s       r$   r+   r+   M   s$    
9
9
9AqAq61
9
9
9r&   r.   )data)edge_labelsc                     t          t                              |                     }t          |         |          d         }|dk    rt          |          |z   S |S )Nr.   r,   )nextGpredecessorsmorse_encode)letterpredsymbols      r$   r<   r<   S   sN    v&&''DtWV_V$FrzzD!!F**Mr&    c                 ,    g | ]}t          |          S r)   )r<   )r*   ltrs     r$   
<listcomp>rC   a   s     ===cS!!===r&   ilovenetworkx)$__doc__networkxnxdotdashmorse_direct_mappingdictsorteditemsmorse_mapping_sortedreverse_mappingDiGraphr:   noder.   r>   add_edge	enumeratetopological_generationsr   r/   r   nodesmultipartite_layoutr3   r   drawedgeselabelsdraw_networkx_edge_labelsr<   stringascii_lowercaser=   printjoinr)   r&   r$   <module>r_      s)  	 	     ta d	S	  a	
  q4#	 C q q tax d	 tcAg	     tax#	!" C$	#$ 
tc		q		q4	q4	tax	a$		dQh		C!G	5   B t
F%%''-Q-QRRR  
 BA$8$>$>$@$@AAA  BJLL&,,.. ; ;JD$9DJJt$dbJ:::: 	4"4Q7788    HAu    
7 bQ7,GGG	  AF2JJJ"JJJJ s % % % %
9
9AGGG$8$8
9
9
9  Q 9 9 9 9
   $ @ @F<#7#?????? chh==_===>> ? ? ? ? ?r&   