Advanced Algorithm Question
Advanced Algorithm Question
We have been discussing design algorithmic issues relating to Fibonacci heaps. To get a better feel for the practical issues involved you are expected to implement Fibonacci heaps as discussed in class. Your implementation should be able to support the following operations. createheap(f): insert(f, x.key): returns a pointer to a empty Fibonacci heap named f. inserts an item with name x and an attribute key which has real/integer values in heap f. The item may have a number of other attributes. deletemin(f): deletes the item with min value from the heap f and returns a pointer to it. decreasekey(f, x, ): decreases the value of key field by of item x in heap f. delete(f, x) delete item x from heap f. merge(f, h, g): merge two heaps named f and h and name the merged heap g. findmin(f): returns pointer to the item with min value in heap f. The implementation must be done in such a way that your system can be used by any one else to develop a system where Fibonnaci heaps are needed. To this end you must prepare a design document which gives all details of your proposed implementation. The document must also details out how another person could use your system. Keep in mind that the next programming assignment will require you to use the system developed by some one else in the class. The design document (a pdf file) is due by midnight August 24. The working system is due by midnight September 10. Happy Programming !