Strange errors in linked list program
Code:
#include <iostream>
using std::cout;
using std::endl;
class List
{
private:
int size;
struct Node {
int value;
struct Node * next;};
typedef struct Node * nodePtr;
nodePtr startPtr;
public:
List();
~List();
void addNode(int , int);
void insert(int, nodePtr);
int getInfo(int);
nodePtr retrieve(int);
};
List::List()
{
startPtr = NULL;
size = 0;
}
void List::addNode(int info, int pos)
{
nodePtr p;
p = new Node;
insert(pos, p);
}
void List::insert(int pos, nodePtr newPtr)
{
nodePtr nextPtr;
if(pos<0 && pos>size+1)
{
cout << "out of range" << endl;
exit(1);
}
if(this->startPtr == NULL)
{
startPtr = newPtr;
}
else
{
if(pos==0)
{
newPtr->next = startPtr;
startPtr = newPtr;
}
else
{
nextPtr = retrieve(pos);
if(nextPtr!=NULL)
{
newPtr->next = nextPtr->next;
nextPtr = newPtr;
}
}
size++;
}
}
nodePtr List::retrieve(int pos)
{
nodePtr ptr = startPtr;
if(startPtr != NULL)
{
for(int i=0; ptr != NULL, i!=pos; i++)
{
ptr = ptr->next;
}
}
return ptr;
}
int main(void)
{
return 0;
}
oookeeey, what the hell is going on?