hi,
i am working(still)..on a linked list where nodes are assigned
and given an index number.
I am assigning the indexes incrementally according to the size
of the linked list.
Upon deletion (node chosen by index), I delete the node
and decrement the size, but when i return to print the list
I am getting junk when I encounter the spot where the
deleted node index was to be listed (and I crash).
Am I
a) assigning the index number incorrectly?
or
b) not re-assigning all indexes once a node is deleted.
-for example if I delete node 2 out of 3, should i re-assign
node 3 to be node 2?
here is where they are assigned
Code:
void ListofTeles::setdata()
{


 char Name [MAX];
 char Number[MAX];
 long index = this->size+1;


		TeleEntry     *Tele;
		
			cout << "Enter Name (Last,First) :"<< endl;
			cin >> Name;
			cout << "Enter Number :"<< endl;
			cin >> Number;
			Tele = new TeleEntry;
			strcpy (Tele->EntryNumber, Number);
			strcpy (Tele->EntryName, Name);	
			
			Tele->index = index;

		    this->Add(Tele);
		
}
here is my delete function
Code:
void ListofTeles::Delete(int position)
{

 TeleEntry *current, *dead=new TeleEntry;

 if (Head==NULL){cout << "List is Empty - Invalid Choice"<<endl;
	return;}
else{	
current = Head;
while(current!=NULL){
cout<< "current index is " << current->index<< endl;

if (current->index == position){
		cout << current->EntryName<< "   will be deleted"<< endl;
		if(current->index!=1){
			current->Next=current->Next->Next;
			dead=current;
			delete dead; cout << "delete dead" << endl;
			dead=NULL;
			size--; cout << "size now" << size<<endl;
			return;}
		else
			{delete current; cout << "delete current is HEAD" << endl;
			size--; cout << "size now" << size<<endl;
			return;}
			}
		else
		current = current->Next;
	
		}
	}
}
thanks to everyone who helps here...