File: figure-47-example-datastructures.dia

package info (click to toggle)
tklib 0.6-1
  • links: PTS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 16,012 kB
  • sloc: tcl: 65,204; sh: 6,870; ansic: 792; pascal: 359; makefile: 73; exp: 21; sed: 16
file content (48 lines) | stat: -rw-r--r-- 1,602 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0

proc ndblock {} {
    variable boxwidth
    variable boxheight
    box wid [expr {$boxwidth/2.}] ht [expr {$boxheight/2.}]
    down;
    box same with t at [last box bottom];
    box wid [expr {$boxwidth/2.}] ht [expr {$boxheight/2.}]
}

set boxheight    [5 mm]
set boxwidth     [7.5 mm]
set dx           [1 mm]

down; box; box; box; box ht [expr {3*$boxheight}] "." "." "."

set L [box]; box; text wid [expr {2*$boxwidth}] "hashtab:" with e at [1st box w]

move right

set Start [box wid [13 mm] with sw at [[1st box ne] + [[1 cm] [-5 mm]]] "..."]

set N1 [box wid [5 mm] "n1"]; set D1 [box wid [7.5 mm] "d1"]
set N3 [box wid [1 cm] "n3"]; set D3 [box wid [7.5 mm] "d3"]

box wid [1 cm] "..."

set N2 [box wid [13 mm] "n2"]; set D2 [box wid [5 mm] "d2"]

arrow right from [2nd box]
ndblock
spline -> right [5 mm] from [3rd last box] then [[$N1 sw] + [$dx 0]]
spline -> right [7.5 mm] from [2nd last box] then [[$D1 sw] + [$dx 0]]

arrow right [expr {1.6*$movelength}] from [last box]
ndblock
spline -> right [5 mm] from [3rd last box] to [[$N2 sw] - [$dx [5 mm]]] to [[$N2 sw] + [$dx 0]]
spline -> right [7.5 mm] from [2nd last box] to [[$D2 sw] - [$dx [5 mm]]] to [[$D2 sw] + [$dx 0]]

arrow right [expr {1.3*$movelength}] from $L
ndblock
spline -> right [5 mm] from [3rd last box] to [[$N3 sw] + [$dx 0]]
spline -> right [7.5 mm] from [2nd last box] to [[$D3 sw] + [$dx 0]]

text "ndblock" at [[last box e] + [[3 cm] [5 mm]]]
arrow dashed from [last text w] to [last box] chop 0 chop [7.5 mm]
text wid [expr {2*$boxwidth}] "ndtable:" with e at [$Start w]