3 罪犯农场里的数组和索引(2 / 2)

“你们想干什么?”Crannock太太问。

“Crannock太太,”Notation担心Frank抢走了她的目击证人,抢先问道,“我能不能问你几个问题?”

<img src="/uploads/allimg/200412/1-2004120PJ54D.jpg"/>

Frank决定让Notation先问。Billy提供的线索只能指引他找到这个农场,但是Notation看起来收集了更多的信息。

Crannock太太冷笑一声,朝地上吐了口唾沫说道:“我啥都没干,我已经金盆洗手了。”

“我不是来逮捕你的,”Notation说,“我想问你一些关于驴车——Array Cart(数组车)的问题。”

Frank心里闪过一丝疑惑。Notation难道是为了调查另一个案子才来这里的吗?他有些怀疑。直觉告诉他这个女人是为了那些丢失的文件而来的,而且他很相信自己的直觉。

“Array Cart啊,”Crannock太太说道,虽然她表面上是毫不遮掩的傲慢,但是语气里还是夹杂着疑虑,“这是我的发明,基于数组的原理而创造的。它有很多分开的棚,用来存放我的动物们。每一个棚只能存放一只动物。我可以直接把某一只动物放出来或者关进去,因为每个棚都有一扇门。这样可以直接地访问每一个存储位置,既方便又节约时间。”

<img src="/uploads/allimg/200412/1-2004120PJ5247.jpg"/>

“这方法确实很巧妙,”Notation承认道,“你把数组和索引的概念运用在了牲畜的转移上。”

“这只是一个开始,”Crannock太太补充说,“我和一个巫师在研究一种新型Array Cart,新型的Array Cart上带有魔法指针!我敢打赌它们作为警队的装备是再好不过的了。跟你的警长说我可以给他一点折扣。”

Frank不得不赞扬Notation的机智,一旦说到数组,Crannock家的人就开始喋喋不休了。

“你现在是不是租出去了几辆Array Cart?”Notation试探道。

Crannock太太突然变得极其冷漠地说:“我们做的事没有违法,我们交了税。”

Frank差点笑出声,但还是忍住了。

“两天前的晚上你是不是恰好把某些Array Cart租给了别人?”Notation步步紧逼地问道,“一种小一点的只有六个棚的Array Cart?”

“有可能吧。”Crannock太太说。她冷漠的举止渐渐转变为敌意。

Notation问:“你有记录是租给谁了吗?”

“没,”Crannock太太说,“一旦借的人把Array Cart还回来,我就会把记录撕掉,我现在也想不起来谁借的那一辆了。”

Billy的暗示似乎已经得到了验证。一个想逃跑的罪犯能租到Array Cart的地方不多,租完Array Cart就被忘记更是不太可能,Crannock太太虽说自己已经金盆洗手,但她很明显地在向从前的同伙提供非常有价值的帮助。

“你确定你一点都不记得之前的客户了吗?”Notation不罢休地问道,但是Frank知道这个问题是没有意义的。他曾经为了一头被偷的牦牛而问过她三个小时,尽管她是被偷的一方,但她还是没有告诉他任何信息。Crannock太太不愿意开口。

Notation在尝试几种不同的问法,希望套出一点话,这时Frank悄悄地从谷仓溜了出去,找到了Array Cart的停车场。

不出他所料,停车场的十个车位被整理成了标过号码的数组,只有2号、4号和8号车位停着Array Cart。不过2号和4号的车位上停的都是有10个棚的Array Cart,都不是Notation说的那种。8号车位上停的才是有6个棚的Array Cart,它的轮子上还留着没完全干的泥土。

<img src="/uploads/allimg/200412/1-2004120PJ5459.jpg"/>

Frank扫视了周围,跳进这个有六个棚的Array Cart上。Array Cart的地板上零散地铺着稻草,但没有牲畜。Frank逐一打开每一个棚的门,在空无一物的空间里寻找线索。他趴在地上,一层层拨开稻草,直到找到了一些羊皮纸的碎片。

Frank一共找到了六片,可能是在把文件搬下Array Cart时被钉子割下来的边边角角。其中只有两片有文字,看起来像是账目的一部分。虽然这不是什么可靠的线索,但这能表示这辆Array Cart和案子脱不了干系。

Frank开始检查Array Cart的前面,小心地在驾驶座找线索。他在椅子那里找到了第一条真正的线索——在木椅子残破的地方,卡着几根黑色和橙色的细线,是披风上的线。Frank断定这件披风一定是新的,因为细线还没褪色。他心满意足地把细线装在口袋里,从Array Cart上跳下来。

当呼吸到一口新鲜空气时他才意识到,原来自己一直是屏住呼吸的。Array Cart的周围弥漫着鱼腐烂后的腥臭味。他嗅了嗅,循着臭气找到了根源——被泥土盖住的轮子。他深吸了一口气,但是立马就后悔了,那些泥土散发出的鳗鱼腐臭的气味是如此恶心。

Frank一边微笑一边作呕地远离了这辆Array Cart,因为虽然他不知道是谁租了这辆Array Cart,但他毫无疑问地知道了这辆Array Cart曾经去过哪里。

<h2>警用算法导论:数组</h2>

节选自Drecker教授讲义

数组是可以让你存储多个值的简单数据结构。一个数组就像一排箱子一样,每个箱子可以存储一条信息,例如一个数或一个字符。

<img src="/uploads/allimg/200412/1-2004120PJC19.jpg"/>

数组结构的意义在于,可以通过指定一个位置或索引的方法来存储或读取数组中的任何值(或元素)。很多编程语言数组的索引都是从0开始的。这也就意味着第1个值存放在第0位,第2个值存放在第1位,以此类推。通常数组A中索引为i的值存储在A[i]中。例如,上面的数组A的第3个元素的索引为2,我们用A[2]表示,存储的值为19。

昨天警校组织大家参观监狱时你可能已经发现了这个结构的运用。国王亲自建议使用索引来对牢房进行编号,这样可以简化对犯人的检索。现在每个警局都根据当地犯人的人数配备了4~8个编过号的数组牢房来关押犯人。