Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 用于特定文本编辑器的数据结构_Optimization_Data Structures - Fatal编程技术网

Optimization 用于特定文本编辑器的数据结构

Optimization 用于特定文本编辑器的数据结构,optimization,data-structures,Optimization,Data Structures,某些文本编辑器需要执行以下操作: 插入一个字符 删除一个字符 链表示例: Insert(3,"x"): before: [a]-[b]-[c]-[d]-... after: [a]-[b]-[x]-[c]-[d]-... Delete(3): before: [a]-[b]-[x]-[c]-[d]-... after: [a]-[b]-[c]-[d]-... 实现这种行为的最佳数据结构是什么?我的直觉是:红黑树如果你说的“最优”是指最小的大O型边界,那

某些文本编辑器需要执行以下操作:

插入一个字符 删除一个字符 链表示例:

Insert(3,"x"):

   before:  [a]-[b]-[c]-[d]-...
   after:   [a]-[b]-[x]-[c]-[d]-...

Delete(3):

   before:  [a]-[b]-[x]-[c]-[d]-...
   after:   [a]-[b]-[c]-[d]-...

实现这种行为的最佳数据结构是什么?我的直觉是:红黑树

如果你说的“最优”是指最小的大O型边界,那么任何树结构都比LinkedList好,在vs.Ologn上。这包括搜索字符并将其删除。如果编写程序所需的时间是一个很大的因素,那么假设您从头开始编写这些数据结构,LinkedList将是最佳解决方案。是的,我指的是最佳算法复杂性,即最坏情况下的最小大O界限。请注意,删除和插入操作是根据距数据开头的偏移量完成的,而不是通过搜索字符。因此,数据结构必须跟踪每个字符的位置,并允许使用有效的算法来查找第k个元素。链表只是一个示例来说明其功能,我希望使用其他数据结构可以更快地实现这一点。