Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Cryptocurrencies are software evolving over time, sometimes branching into new forks which will evolve on their own ( hard forks, e . g . :

Cryptocurrencies are software evolving over time, sometimes branching into new forks which will evolve on
their own (hard forks, e.g.: bitcoin cash, bitcoin gold), mostly due to disagreements among developers who
eventually choose to break up and create their own crypto protocols of the same currency. You will write a
class specified in Part A (below) to help search the information of forking over the time of a cryptocurrency
evolution, then answer a follow-up question related to time complexity in Part B.
Part A Coding (90 pts)
Implement the CryptoForkTree class in cryptotree.cpp (code skeleton is provided) to retrieve information
from a given crypto fork tree.
Files to get you started:
cryptotree.h, cryptotree.cpp (you must not change their names)
a. The CryptoForkNode class represents a new fork starting point (node) in the crypto fork tree.
You must NOT change this class.
b. The CryptoForkTree class declares the tree operations, you must NOT change any signature
(or declaration) of the tree functions; otherwise, your code will automatically fail some or all
auto-grading tests on Gradescope. You will write the implementations for those operations
following whats specified in the comment section above each function. You may add helpers
in CryptoForkTree class to help with your implementation.
Makefile: A makefile allows you to automate the compilation of your code. Check out the
Frequently Asked Questions link in the C/C++ programming in Linux / Unix reference page on
Canvas for simple Makefile reference.
Use the make command to compile. Use make clean to delete compiled object code and
the executable.
Use ./cryptotree to execute.
You MUST NOT change the executable file name cryptotree in the Makefile, otherwise,
autograding will automatically fail.
Assumptions:
1) No two forks (nodes) can have the same fork name.
2) This also implies that each fork (node) has a unique fork name. Autograder testing will use unique
fork (node) names.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions