All pastes #88529 Raw Edit

Mine

public text v1 · immutable
·published 2006-07-15 02:04 UTC
rendered paste body
#include "list.h"
#include <iostream>
using namespace std;

List::List()
{
	listSize = 10;
	listPointer = new int[listSize];
	position = 0;
}

List::List(int size)
{
	listSize = size;
	listPointer = new int[size];
	position = 0;
}

void List::PrintList()
{
	for(int i = 0; i < listSize; i++)
	{
		cout << listPointer[i] << endl;
	}
}

void List::AddItem(int n)
{
	if(position + 1 > listSize)  // Increase the list once max size is exceeded
	{
		int * newPointer;  // Create resized list 
		int newSize = (listSize * .50) + listSize;   // makes the size 50% larger
		cout << "Resizing data structure to: " << newSize << endl << endl;

		newPointer = new int[newSize];

		for(int i = 0; i <= listSize; i++)  // Assign data to larger data structure
		{
			newPointer[i] = listPointer[i];
		}

		delete listPointer;  // Delete all data structure
		listPointer = newPointer;  // Assign the pointer
		listSize = newSize;  // Update size
	}

	listPointer[position] = n;
	position++;

}

#ifndef LIST_H
#define LIST_H

class List
{
public:
	List();
	List(int);
	void AddItem(int);
	void PrintList();

private:
	int listSize;
	int position;
	int * listPointer;

};

#endif

#include <iostream>
#include "list.h"
using namespace std;

void main()
{
	int size;

	cout << "Please enter the initial list size: ";
	cin >> size;

	/* Fill up new list and print */
	if(size <= 0)
	{
		cout << "List size cannot be zero, use default size of 10." << endl;
		size = 10;
	}

	List newList(size);

	for(int i = 0; i < size; i++)
	{
		newList.AddItem(i);
	}

	newList.PrintList();

	cout << endl;

	/* Add 5 more items to already full list, to check for resizing */

	cout << "Adding 5 items: " << endl;

	for(int i = 10; i < 15; i++)
	{
		newList.AddItem(i);
	}

	newList.PrintList();

}

/* Program Output */
/*
Please enter the initial list size: 10
0
1
2
3
4
5
6
7
8
9

Adding 5 items:
Resizing data structure to: 15

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Press any key to continue . . .
*/