# Hare Rope Implementation. A Rope is a data structure that manages an ordered set of characters. Just like a string! You can read more about it on its [Wikipedia article.](https://en.wikipedia.org/wiki/Rope_(data_structure)) Some of the key Big-O differences are the following: | Operation | Rope | String | | --- | --- | --- | | Index | O(log n) | **O(1)** | | Split | O(log n) | **O(1)** | | Concatenate | **O(1)** amort., **O(log n)** worst | O(n) | | Iterate over each character | *O(n)* | *O(n)* | | Insert | **O(log n)** | O(n) | | Append | **O(1)** amort., **O(log n)** worst | O(1) amort., O(n) worst | | Delete | **O(log n)** | O(n) | | Report | O(j + log n) | **O(j)** | | Build | *O(n)* | *O(n)* | *Table taken from [Comparison with monolithic arrays](https://en.wikipedia.org/wiki/Rope_(data_structure)#Comparison_with_monolithic_arrays)*