面试数据结构一题# JobHunting - 待字闺中
d*o
1 楼
构造数据结构,实现两个function
int getProcessID()
void freeProcessID(int id)
要求,如果getProcessID 调用6次,那么系统里面会有6个process在运行,(id 从 1到
6)如果,freeprocessid(x)调用,系统里面对应得process x会被释放。
但是,如果再一次调用getProcessID(), 会返回最小的之前被释放得processID.
举例:调用顺序:
getProcessID()
getProcessID()
getProcessID()
getProcessID()
getProcessID()
getProcessID()//系统里面会有6个process
free(5)//系统process 1,2,3,4,6
free(3)//系统process 1,2,4,6
free(6) //系统process 1,2,4
getProcessID() //系统process 1,2,3,4
getProcessID() //系统process 1,2,3,4,5
请问用什么数据结构实现,使得这两个function的运行时间都为O(1)?
int getProcessID()
void freeProcessID(int id)
要求,如果getProcessID 调用6次,那么系统里面会有6个process在运行,(id 从 1到
6)如果,freeprocessid(x)调用,系统里面对应得process x会被释放。
但是,如果再一次调用getProcessID(), 会返回最小的之前被释放得processID.
举例:调用顺序:
getProcessID()
getProcessID()
getProcessID()
getProcessID()
getProcessID()
getProcessID()//系统里面会有6个process
free(5)//系统process 1,2,3,4,6
free(3)//系统process 1,2,4,6
free(6) //系统process 1,2,4
getProcessID() //系统process 1,2,3,4
getProcessID() //系统process 1,2,3,4,5
请问用什么数据结构实现,使得这两个function的运行时间都为O(1)?