Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <types.h>
- #include <functions.h>
- #include <iostream>
- using namespace std;
- void addToStart ( listNode * &list, listNode * PNew)
- {
- if(list == NULL){
- PNew->next = NULL;
- PNew->prev = NULL;
- list = PNew;
- cout << "Элемент был добавлен." << endl;
- return;
- }
- PNew->prev = NULL;
- list->prev = PNew;
- PNew->next = list;
- list = PNew;
- cout << "Элемент был добавлен." << endl;
- return;
- }
- void addToEnd ( listNode *&list, listNode *PNew)
- {
- if(list == NULL){
- PNew->next = NULL;
- PNew->prev = NULL;
- list = PNew;
- cout << "Элемент был добавлен." << endl;
- return;
- }
- PNew->next = NULL;
- listNode *wp = list;
- listNode *prev = NULL;
- while(wp != NULL){
- prev = wp;
- wp = wp->next;
- }
- prev->next = PNew;
- PNew->prev = prev;
- cout << "Элемент был добавлен." << endl;
- return;
- }
- void addToSort(listNode *&list, listNode *PNew)
- {
- PNew->next = NULL;
- PNew->prev = NULL;
- if (list == NULL || PNew->number <= list->number)
- {
- PNew->next = list;
- if ( list != NULL )
- list->prev = PNew;
- list = PNew;
- return;
- }
- listNode * wp = list->next;
- listNode * prev = list;
- if ( wp != NULL)
- while (wp != NULL && wp->number < PNew->number)
- {
- prev = wp;
- wp = wp->next;
- }
- prev->next = PNew;
- PNew->prev = prev;
- PNew->next = wp;
- if(wp != NULL && wp->next != NULL)
- wp->next->prev = PNew;
- }
- void printList ( listNode *list )
- {
- if (list == NULL)
- {
- cout << " Список пустой! \n";
- return;
- }
- listNode *wp = list;
- while ( wp != NULL)
- {
- cout << wp->number << " ";
- wp = wp->next;
- }
- cout << endl << endl;
- }
- void delFromSort ( listNode *&list, int num)
- {
- listNode *wp = list;
- while (wp != NULL)
- {
- if (num != wp->number)
- {
- wp = wp->next;
- }
- else
- {
- listNode *pDel = wp;
- if ( wp->prev != NULL )
- wp->prev->next = wp->next;
- else
- list = wp->next;
- if ( wp->next != NULL )
- wp->next->prev = wp->prev;
- delete pDel;
- }
- }
- }
- void delList ( listNode *&list )
- {
- listNode *wp = list;
- while ( wp != NULL)
- {
- listNode *pDel = wp;
- wp = wp->next;
- delete pDel;
- }
- list = NULL;
- }
- void specEl ( listNode *&list )
- {
- if (list == NULL || list->next == NULL )
- return;
- listNode *prev1 = NULL;
- listNode *prev2 = NULL;
- listNode *wp = list;
- listNode *fol1 = NULL;
- listNode *fol2 = NULL;
- int sumNext = 0;
- int sumPrev = 0;
- while ( wp )
- {
- prev1 = wp->prev;
- fol1 = wp->next;
- if (prev1)
- prev2 = prev1->prev;
- else
- prev2 = NULL;
- if (fol1)
- fol2 = fol1->next;
- else
- fol2 = NULL;
- if (fol2)
- sumNext = fol1->number + fol2->number;
- else if (fol1)
- sumNext = fol1->number;
- if (prev1 && prev2)
- sumPrev = prev1->number + prev2->number;
- else if (prev1)
- sumPrev = prev1->number;
- if (sumNext > sumPrev)
- {
- cout << "Элемент, удовлетворяющий условия: " << wp->number << endl
- << "Cумма двух предыдущих элементов: " << sumPrev << endl;
- cout << "Cумма двух последующих элементов: " << sumNext << endl << endl;
- }
- sumNext = 0;
- sumPrev = 0;
- wp = wp->next;
- }
- }
- void delEl (listNode *&list)
- {
- if (list == NULL)
- return;
- listNode *wp = list;
- while (wp->next != NULL)
- {
- if (wp->next->number %2 == 1)
- {
- listNode *pDel = wp;
- if ( wp->prev != NULL )
- wp->prev->next = wp->next;
- else
- list = wp->next;
- if ( wp->next != NULL )
- wp->next->prev = wp->prev;
- delete pDel;
- }
- else
- wp = wp->next;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement