Advertisement
DoominoR

14 Laba Header.cpp

Dec 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include "Header.h"
  3. #include <cstdlib>
  4.  
  5. struct list * init(int head) // heаd - data of first segment
  6. {
  7.     struct list *lst; // memory for root of list
  8.     lst = (struct list*)malloc(sizeof(struct list));
  9.     lst->field = head;
  10.     lst->ptr = NULL; // ended segment
  11.     return(lst);
  12. }
  13.  
  14. struct list * addelem(list *lst, int number)
  15. {
  16.     struct list *temp, *p;
  17.     temp = (struct list*)malloc(sizeof(list));
  18.     p = lst->ptr; // save pointer for next segment
  19.     lst->ptr = temp; // last segment point for new
  20.     temp->field = number; // save data new segment
  21.     temp->ptr = p; // new segment point for next
  22.     return(temp);
  23. }
  24.  
  25. void listprint(list *lst)
  26. {
  27.     struct list *p;
  28.     p = lst;
  29.     do {
  30.         printf("%d ", p->field); // screen p
  31.         p = p->ptr; // go to next segment
  32.     } while (p != NULL);
  33. }
  34.  
  35. struct list * deletelem(list *lst, list *root)
  36. {
  37.     struct list *temp;
  38.     temp = root;
  39.     while (temp->ptr != lst) // look list from root, to lst
  40.     {
  41.         temp = temp->ptr;
  42.     }
  43.     temp->ptr = lst->ptr; // take pointer
  44.     free(lst); // delete memory segment
  45.     return(temp);
  46. }
  47.  
  48. struct list * deletehead(list *root)
  49. {
  50.     struct list *temp;
  51.     temp = root->ptr;
  52.     free(root); // delete memory root
  53.     return(temp); // new root
  54. }
  55.  
  56. void deleteNegative(list *root)
  57. {
  58.     struct list *p;
  59.     p = root;
  60.     do {
  61.         if (p->field<0)
  62.         {
  63.             p = deletelem(p, root);
  64.         }
  65.         else
  66.         {
  67.             p = p->ptr;
  68.         }
  69.     } while (p != NULL);
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement