, .15.
15.
1. | : list* ptr = new list. |
| ||||||||||||
2. |
| |||||||||||||
3. | , : head = ptr. |
| ||||||||||||
4. | , | |||||||||||||
4.1. | : ptr -> next = head. |
| ||||||||||||
4.2. | : head -> back = ptr. |
| ||||||||||||
4.3. | : head = ptr. |
|
int val;
list head;
list* ptr = new list;
ptr->value = val;
ptr->next = NULL;
ptr->back = NULL;
if (head == Nil) head = ptr // ?
else
{
Ptr->next = head;
Head->back = ptr;
Head = ptr;
}
( ) :
int s
list tail;
list* ptr = new list;
ptr->value = val;
ptr->next = NULL;
ptr->back = NULL;
if (tail == NULL) tail = ptr // ?
else
{
tail->next = ptr;
prt->back = tail;
tail = ptr;
}
:
1. .
2. .
3. .
4. , , .
free(). 4, , (.16).
16.
1. | . : cur->back->next =cur->next; |
| ||||||||||||||||||||||
2. |
cur->next->back = cur->back;
|
| ||||||||||||||||||||||
3. |
|
| ||||||||||||||||||||||
4. |
cur = cur->next; |
| ||||||||||||||||||||||
5. | , : free(tail); |
|
//
list head,tail,cur, temp;
// ?
if ((cur->next == NULL) && (cur->back = NULL))
{
head = NULL;
tail = NULL; //
free(cur);
cur = NULL; //
}
else
if (cur->next == NULL) // ?
{
tail = tail->back; //
tail->next = NULL;
free (cur);
cur = tail;
}
else
if (cur->back == NULL) // ?
{
head = head->next; //
head->back = NULL;
free (cur);
cur = head;
}
else // , ,
{
cur->back->next = cur->next;
cur->next->back = cur->back;
temp = cur;
cur = cur->next;
free (temp);
};
}