Implement a persistent array, combining the fat nodes idea of section 7.2 with a normal array. (attached file contains copy of chapter 7.2) The structure should support the following operations - p array t *create p array(int length) creates a persistent array of integers of the given length. - int set p array(p array t *array, int index, int value) sets the array entry index to value and returns a new version number. This should work in O(log n). - int get p array(p array t *array, int index) returns the current value of the array entry index; this should work in O(1) time. - int get old p array(p array t *array, int index, int version) returns the value of the array entry index at the time version. This should work in O(log n) time
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables):
a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).