ليست پيوندي يک طرفه به زبان ++C
#1
Note 
پياده سازي ليست پيوندي يک طرفه به زبان ++C

[CPP]

#include "sLinkList.h"
#include
#include


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

sLinkList:ConfusedLinkList()
{
Front = NULL;
Rear = Front;
Count = 0;

}

sLinkList::~sLinkList()
{
NodePtr current, temp;

current = Front;
while (current != NULL)
{
temp = current;
current = current->Next;
delete temp;
}

Front = NULL;
Rear = Front;
Count = 0;
}

//////////////////////////////////////////////////////////////////////
// InsertFirst function
// Task: To insert a new node containing Item at the front of the list
// Given: Item A data item
// Return: Nothing
//////////////////////////////////////////////////////////////////////

void sLinkList::InsertFirst(char item)
{

NodePtr current;

current = new Node;

if (current == NULL)
{
cerr << "Memory allocation error!" << endl;
exit(1);
}

current->Next = Front;
current->Info = item;

Front = current;

if (Count == 0)
Rear = current;
Count++;
}

//////////////////////////////////////////////////////////////////////
// InsertLast function
// Task: To insert Item into a new node added to the rear of the list
// Given: Item A data item
// Return: Nothing
//////////////////////////////////////////////////////////////////////

void sLinkList::InsertLast(char item)
{
NodePtr current;

current = new Node;

if (current == NULL)
{
cerr << "Memory allocation error!" << endl;
exit(1);
}
current->Next = NULL;
current->Info = item;
if (Count == 0)
Front = current;
else
Rear->Next = current;
Rear = current;
Count++;
}


//////////////////////////////////////////////////////////////////////
// RemoveFirst
// Task: To remove first node from the list
// Given: Nothing
// Return: Data item that removed from the list
//////////////////////////////////////////////////////////////////////

void sLinkList::RemoveFirst(char &item)
{
NodePtr current;

if (Count == 0)
{
cerr << "ERROR: there is no item to remove in the list!" << endl;
exit(1);
}

current = Front;
item = current->Info;
Front = current->Next;
Count--;

if (Count == 0)
Rear = Front;

delete current;

}

//////////////////////////////////////////////////////////////////////
// ShowList
// Task: Show all data item of the list
// Given: Nothing
// Return: Nothing
//////////////////////////////////////////////////////////////////////

void sLinkList::ShowList(void)
{
NodePtr current, temp;

current = Front;
while (current != NULL)
{
cout<< current->Info< current = current->Next;
}

}
[/CPP]

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note ليست پيوندي دو طرفه به زبان ++C VBProgrammer 0 377 22-02-2013 ساعت 15:12
آخرین ارسال: VBProgrammer

کاربرانِ درحال بازدید از این موضوع:   1 مهمان