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

“这只是一个开始,”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,它的轮子上还留着没完全干的泥土。

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曾经去过哪里。

警用算法导论:数组

节选自Drecker教授讲义

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

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

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