Что не так с объявлением CellType? Это реализация связного списка. listHead - это новый пустой связанный список. Из-за использования listHead в другом разделе кода я попытался объявить его как глобальную переменную.
#include <iostream>
typedef struct CellType* Position;
typedef int ElementType;
struct CellType{
ElementType value;
Position next;
};
class List{
public:
CellType* listHead;
void makeNull(); //Create a new list
void insertList(ElementType x, Position p); //Insert element to the list
void deleteList(Position p); //delete an element at position p
Position first(); //get Position of first
Position end(); //get Position of end
Position next(Position p); //get position of next
void printList(); //print list
};
void List::makeNull(){
listHead = new CellType;
listHead -> next = NULL;
}
void List::insertList(ElementType x, Position p){
Position temp;
temp = p -> next;
p->next = new CellType;
p->value = x;
p->next->next = temp;
}
void List::deleteList(Position p){
p->next = p->next->next;
}
Position List::first(){
return (listHead);
}
Position List::end(){
Position p;
p = listHead;
while(p->next != NULL){
p = p->next;
}
return(p);
}
Position List::next(Position p){
return(p->next);
}