3 \documentclass[12pt]{article}
4 \usepackage{elemfig,amsmath}
6 \newcommand{\xlab}[1]{\mlabel{\textsc{#1}}}
10 data[0] = btex \xlab{a} etex; data[1] = btex \xlab{b} etex; data[2] = btex \xlab{c} etex;
11 data[3] = btex \xlab{d} etex; data[4] = btex \xlab{e} etex; data[5] = btex \xlab{f} etex;
12 data[6] = btex \xlab{g} etex; data[7] = btex \xlab{h} etex; data[8] = btex \xlab{i} etex;
13 data[9] = btex \xlab{j} etex; data[10] = btex \xlab{k} etex; data[11] = btex \xlab{l} etex;
14 data[12] = btex \xlab{m} etex; data[13] = btex \xlab{n} etex; data[14] = btex \xlab{o} etex;
16 pair min_reasonable_cell; min_reasonable_cell := (0,0);
18 min_reasonable_cell :=
19 (max(xpart min_reasonable_cell, xpart (urcorner data[_i_] - llcorner data[_i_])),
20 max(ypart min_reasonable_cell, ypart (urcorner data[_i_] - llcorner data[_i_])));
22 color deletedelement; deletedelement = .5white;
24 picture emptyqueue; emptyqueue := btex \phantom{\elementlabel{Queue}} etex;
25 picture vemptyqueue; vemptyqueue := emptyqueue rotated 90 xscaled .4;
30 boxjoin(b.w - a.e = (20,0));
31 leafit.a(data[0], data[1], data[2]);
32 leafit.d(data[3], data[4], data[5]);
33 leafit.g(data[6], data[7], data[8]);
34 leafit.j(data[9], data[10], data[11]);
35 leafit.m(data[12], data[13], data[14]);
37 internalnodeit.ina(data[3], data[6], nullpicture);
38 internalnodeit.inj(data[12], nullpicture, nullpicture);
39 internalnodeit.root(data[9], nullpicture, nullpicture);
40 ina.s = .5[a.nw,g.ne] + (0,24);
41 inj.s = .5[j.nw,m.ne] + (0,24);
42 root.s = .5[ina.nw,inj.ne] + (0,24);
43 fixelement(a,d,g,j,m);
44 fixelement(root,ina,inj);
45 leafconnect(a,d,g,j,m);
46 drawelement(a,d,g,j,m,ina,inj,root);
47 internalnodeconnect(ina,a,d,g);
48 internalnodeconnect(inj,j,m);
49 internalnodeconnect(root,ina,inj);
50 label.lft(btex \small{(1)~~} etex, inj.w);