算法题100-快速售票系统的座位登记

题目:为了提供全程对号(考虑长途、短途旅客情况下,每一位旅客在上车到下车期间都有独立座位)的快速售票系统,铁路公司设计了基于内存的系统。适合描述一个车次车票情况的数据结构是()

A、用数组描述座位,数组描述每个座位的售票情况

B、用数组描述座位,链表描述每个座位的售票情况

C、用链表描述座位,数组描述每个座位的售票情况

D、用链表描述座位,链表描述每个座位的售票情况


解答:选B

1.座位与座位之间是相互独立的,而且数据量可预知,不需要插入和删除操作。数组方便快速访问某个座位。

2.每个座位的售票情况描述:

每个座位可以被授予多人。比如北京到郑州的一趟列车。

座位A可这样出售:北京-石家庄可售一张票m,石家庄到邯郸一张票n。邯郸到郑州一张票p。那么,每张票可以用链表中的结点m,n,p来表示(结点中的数据可以包括起点位置和终点位置)。m的next指针指向n,n的next指针指向p。应当满足n(后继结点)的起点位置在m(前驱结点)的终点位置之后。同一个座位的售票情况可用这样的链表来表示。因为同一个座位能够售出的票数是不同的,可以是1张长途的,或者多张短途的,所以用数组不太合适。而且这些票之间是有前驱和后继关系。

你可能感兴趣的:(公司笔试算法题)