Phoenix_x

Untitled

May 1st, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. struct L1 {
  7.     double data;
  8.     L1 *next;
  9. }*start_L1 = NULL;
  10.  
  11. struct L2 {
  12.     int data;
  13.     L2 *next;
  14. }*start_L2 = NULL;
  15.  
  16. void delElem();
  17. void add_e_L1(double &n);
  18. void add_b_L2(int number);
  19. void print_list();
  20.  
  21. void main()
  22. {
  23.     double number_L1 = -1;
  24.     while (number_L1 != 0)
  25.  
  26.     {
  27.         cout << "Vavedete realno chislo za spisaka L1 ( 0 za kraj ): ";
  28.         cin >> number_L1;
  29.  
  30.         if(number_L1 != 0)
  31.             add_e_L1(number_L1);
  32.     }
  33.  
  34.     int number_L2 = -1;
  35.     while (number_L2 != 0)
  36.     {
  37.         cout << "Vavedete cqlo chislo za spisaka L2 ( 0 za kraj ): ";
  38.         cin >> number_L2;
  39.         if(number_L2 != 0)
  40.             add_b_L2(number_L2);
  41.     }
  42.     delElem();
  43.     print_list();
  44. }
  45.  
  46.  
  47. void add_b_L2(int number)
  48. {
  49.     L2 *p = start_L2;
  50.     start_L2 = new L2;
  51.     start_L2->data = number;
  52.     start_L2->next = p;
  53. }
  54.  
  55. void add_e_L1(double &n)
  56. {
  57.     L1 *p = start_L1, *q;
  58.     q = new L1;
  59.     q->next = NULL;
  60.     q->data = n;
  61.     if (start_L1)
  62.     {
  63.         while (p->next)
  64.             p = p->next;
  65.         p->next = q;
  66.     }
  67.     else start_L1 = q;
  68. }
  69.  
  70. void add_e_L2(int &n)
  71. {
  72.     L2 *p = start_L2, *q;
  73.     q = new L2;
  74.     q->next = NULL;
  75.     q->data = n;
  76.     if (start_L2)
  77.     {
  78.         while (p->next)
  79.             p = p->next;
  80.         p->next = q;
  81.     }
  82.     else start_L2 = q;
  83. }
  84.  
  85. void print_list()
  86. {
  87.     L1 *p = start_L1;
  88.     if (start_L1)
  89.     {
  90.         while (p) {
  91.             cout << p->data << "\t";
  92.             p = p->next;
  93.         }
  94.     }
  95.     else
  96.         cout << "No list \n";
  97. }
  98.  
  99. void delElem()
  100. {
  101.     bool notDeleted = true;
  102.     L2 *m = start_L2;
  103.     int deleteOnIndex = 0;
  104.  
  105.     while (m != NULL) {
  106.         deleteOnIndex = m->data;
  107.  
  108.         L1 *p = start_L1, *q, *toDelete;
  109.  
  110.         if (start_L1 == NULL)
  111.             return;
  112.  
  113.         int index = 0;
  114.  
  115.         while (p != NULL && p->next != NULL)
  116.         {
  117.             index++;
  118.             q = p;
  119.  
  120.             while (q->next != NULL)
  121.             {
  122.                 if (deleteOnIndex == index && notDeleted)
  123.                 {
  124.                     toDelete = q->next;
  125.                     q->next = q->next->next;
  126.                     delete (toDelete);
  127.                     notDeleted = false;
  128.                 }
  129.                 else
  130.                     q = q->next;
  131.             }
  132.             p = p->next;
  133.         }
  134.         notDeleted = true;
  135.         m = m->next;
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment