📜  c++ 中的未排序链表 - 任何代码示例

📅  最后修改于: 2022-03-11 14:57:19.545000             🧑  作者: Mango

代码示例1
UnsortedList::UnsortedList()
{
    length = 0;
    data = NULL;
    currentPos = NULL;
}

bool UnsortedList:: IsEmpty(){
    if(length == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

bool UnsortedList::IsFull(){
    Node* ptr = new Node();
    if(ptr == NULL)
      return true;
    else
    {
      delete ptr;
      return false;
    }
}

void UnsortedList::ResetList(){
   currentPos = NULL;
}

void UnsortedList::MakeEmpty()
{
   Node* tempPtr = new Node();

   while(data != NULL)
   {
     tempPtr = data;
     data = data->next;
     delete tempPtr;
   }
   length = 0;
}

int UnsortedList::LengthIs(){
    return length;
}

bool UnsortedList:: IsInTheList(float item){

Node* location = new Node();
location = data;
bool found = false;

while(location != NULL && !found)
{
    if(item == location->element)
        found = true;
    else
        location = location->next;
}
   return found;
}

void UnsortedList:: InsertItem(float item){

    Node* location = new Node();
    location->element = item;
    location->next=data;
    data = location;
    length++;
}

void UnsortedList:: DeleteItem(float item){

Node* location = data;
Node* tempPtr;

if(item == data->element){
    tempPtr = location;
    data = data->next;
}
else{
  while(!(item == (location->next) ->element) )
    location = location->next;
    tempPtr = location->next;
    location->next = (location->next)->next;
}
  delete tempPtr;
  length--;
}

float UnsortedList::GetNextItem(){
   if(currentPos == NULL)
    currentPos = data;
   else
    currentPos = currentPos->next;
   return currentPos->element;
}