文本编辑器设计, 要求append, insert, delete均为O(1)# JobHunting - 待字闺中m*p2014-03-01 08:031 楼append就是加到末尾, insert是加到中间, delete是任何位置的删除linkedlist + hashtable 或者 array + hashtable?已跪, 请问具体如何实现?
l*a2014-03-01 08:032 楼中间指"正中间",还是给个index想insert在什么地方就是什么地方【在 m***p 的大作中提到】: append就是加到末尾, insert是加到中间, delete是任何位置的删除: linkedlist + hashtable 或者 array + hashtable?: 已跪, 请问具体如何实现?
A*c2014-03-01 08:034 楼底层表示用双向链表。类里边定义光标位置。【在 m***p 的大作中提到】: append就是加到末尾, insert是加到中间, delete是任何位置的删除: linkedlist + hashtable 或者 array + hashtable?: 已跪, 请问具体如何实现?
s*x2014-03-01 08:036 楼Insert in the middle for deque is O(n).【在 n*******1 的大作中提到】: 加到中间的话要O(1)的话 deque?
A*c2014-03-01 08:0310 楼这个应该是没说清楚,几乎没有文本编辑器有随机修改任意位置的需求。word,vi, emacs, mitbbs,you name it. 都是对光标位置进行插入和删除操作。【在 m***p 的大作中提到】: 为了可以O(1)访问任意位置, 还需要一个hashtable吧?
j*d2014-03-01 08:0311 楼这个题目,如果“任意位置”是指给出任意的位置索引,要求实现查、删、添,那就是要求集成Hashtable,Linkedlist,Array的O(1),觉得不可能实现。