double linklist
circular linklist