blob: a96d0f57ec8963cedfa5a25be12c360905e30314 (
plain)
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
|
implement StringIntTab;
include "strinttab.m";
lookup(t: array of StringInt, key: string) : (int, int)
{
min := 0;
max := len t-1;
while(min <= max){
try := (min+max)/2;
if(t[try].key < key)
min = try+1;
else if(t[try].key > key)
max = try-1;
else
return (1, t[try].val);
}
return (0, 0);
}
revlookup(t: array of StringInt, val: int) : string
{
n := len t;
for(i:=0; i < n; i++)
if(t[i].val == val)
return t[i].key;
return nil;
}
|