Академический Документы
Профессиональный Документы
Культура Документы
struct dNode
{
Type data;
dNode *prev;
dNode *next;
dNode()
{
prev = NULL;
next = NULL;
}
class dList
{
dNode<Type> *head;
dNode<Type> *tail;
unsigned int length;
public:
dList()
{
head = NULL;
tail = NULL;
length = 0;
}
dNode<Type> *c = dr.head;
if (!head && c)
{
head = new dNode<Type>(c->data);
tail = head;
c = c->next;
}
while (c)
{
Add_Tail(c->data);
c = c->next;
}
~dList()
{
dNode<Type> * c = head;
while (head)
{
head = head->next;
delete c;
c = head;
}
{
dNode<Type> *c = head;
while (head)
{
head = head->next;
delete c;
c = head;
}
head = NULL;
tail = NULL;
length = dr.length;
c = dr.head;
if (!head && c)
{
head = new dNode<Type>(c->data);
tail = head;
c = c->next;
}
while (c)
{
Add_Tail(c->data);
c = c->next;
}
}
return *this;
if (tail == NULL)
{
tail = p;
head = p;
length++;
}
else
{
tail->next = p;
p->prev=tail;
tail = p;
length++;
}
if (head == NULL)
{
tail = p;
head = p;
length++;
}
else {
p->next = head;
head->prev= p;
head = p;
length++;
}
}
if (pos == 0) Add_Head(element);
else if (pos >= length) Add_Tail(element);
else
{ dNode<Type>* c = head;
unsigned int i = 0;
while ((i < pos - 1) && c)
{
i++;
c = c->next;
}
length++; }
while (c)
{
if (c->data == element)
{
return i;
break;
}
c = c->next;
i++;
}
return -1;
return 0;
}
if (tail->data == element)
{
dNode<Type> *s = tail;
tail=tail->prev;
tail->next = NULL;
delete s;
length--;
return 0;
}
dNode<Type> *c = head;
while (c->next)
{
if (c->next->data == element)
{
dNode<Type> *s = c->next;
c->next = s->next;
s->next->prev = c;
delete s;
length--;
return 0;
}
c = c->next;
}
dNode<Type> *c = head;
unsigned int j = 0;
while ((j < i - 1) && (c))
{
c = c->next;
j++;
}
return c->next->data;
};
int main()
{
dList<int> lista1;
lista1.Add_Tail(3);
lista1.Add_Tail(4);
lista1.Add_Head(2);
lista1.Add_Head(1);
lista1.Add_Tail(5);
lista1.Afis();
cout << endl;
cout << lista1.Length() << endl << endl;
lista1.Add_Pos(10, 4);
lista1.Afis();
cout << endl;
cout << lista1.Length() << endl << endl;
lista1.Add_Tail(9);
lista1.Afis();
cout << endl;
cout << lista1.Length() << endl << endl;
dList<int> lista2(lista1);
lista2.Afis();
cout << endl << endl;
dList<int> lista3;
lista3 = lista2;
lista3.Afis();
cout << endl;
system("PAUSE");