An integer can be represented by a linked list with one digit in each node. The least significant digit in this representation is in the first node of the list. This allows for integers of almost any sizse. The nodes are of the following type:

struct digit {int Value; digit* Next; }; typedef digit* number;

Develop an ADT with the following operations for unlimited-digit numbers. In the descriptions, number refers to a linked list of digits, and M, N, and O are all numbers.

Increment - method that increases the value of a number by 1. Should allow for 3 possibilities in function regarding initial value (null, not null and 0-8, not null and 9). Usage: [url removed, login to view]();

Copy - method that copies one number to another. You cannot just copy one pointer to another, you must create copies of each node in the original. Usage: [url removed, login to view](M);

Sum - method that takes 2 numbers and sums them. Usage: [url removed, login to view](M) or [url removed, login to view](M,O);

DisplayNumber - method that displays its argument in standard (most significant digit first) form. Usage: [url removed, login to view]();

The ADT should be a C++ class. Also make a short program to test the procedures.

## Deliverables

1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.

2) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).

## Platform

WinXP OS

Must be able to compile with Visual C++.NET