Advertisement
Guest User

labav2

a guest
Dec 19th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.08 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6. struct monitor
  7. {
  8.     int chislo;
  9.     char size[10];
  10.     monitor *next; //указатель на следующий элемент списка
  11.   };
  12. class c_data
  13. {
  14. private:
  15.     monitor *ukazatel_na_tek, *first;  //указатель на текущий элемент и указатель на 1й элемент списка
  16.     int i,a;
  17. public:
  18.     str()
  19.     {
  20.     ukazatel_na_tek = new monitor; //выделили память под 1й элемент типа monitor
  21.     first = ukazatel_na_tek; //отдельно сохранили адрес первого элемента, чтобы иметь возможность к нему обращаться
  22.     }
  23.    
  24.     void dobavitChislo()
  25.     {
  26.                     //--Заполняем i-й элемент--//
  27.  
  28.         cout << "Введите число\t"; cin >> (*ukazatel_na_tek).chislo;
  29.         cout << "Введите символы\t"; cin >> ukazatel_na_tek->size;
  30.         ukazatel_na_tek->next = new monitor; //выделили память под i-й элемент типа monitor и сохранили его адрес в i-1 элементе
  31.         ukazatel_na_tek = ukazatel_na_tek->next; //перешли от i-1 элемента к i-му
  32.         ukazatel_na_tek->next = 0;  //у последнего элемента сделали указатель на следующий - 0, чтобы было понятно, что это конец списка
  33.  
  34.     }
  35.    
  36.     void vivod()
  37.     {
  38.     ukazatel_na_tek = first; //перешли к 1му элементу
  39.     i = 0;
  40.     while (ukazatel_na_tek) //пока указатель на текущий элемент не станет равным 0, будет работать цикл (т.е. пока не дойдем до последнего элемента)
  41.     {
  42.         i++;
  43.         cout << "элемент" << i << "\n" << ukazatel_na_tek->chislo << '\n' << ukazatel_na_tek->size << '\n';
  44.         ukazatel_na_tek = ukazatel_na_tek->next; //переходим к следующему элементу
  45.     }
  46.     }
  47.    
  48.     int poisk()
  49.     {
  50.     cout << "введите искомый элемент";
  51.     cin >> a;
  52.     ukazatel_na_tek = first; //перешли к 1му элементу
  53.     i = 0;
  54.     while (ukazatel_na_tek) //пока указатель на текущий элемент не станет равным 0, будет работать цикл (т.е. пока не дойдем до последнего элемента)
  55.     {
  56.         i++;
  57.         if (ukazatel_na_tek->chislo == a)
  58.         {
  59.             cout << "элемент" << i << "\n" << ukazatel_na_tek->size << '\n';
  60.         }
  61.         ukazatel_na_tek = ukazatel_na_tek->next; //переходим к следующему элементу
  62.     }
  63.  
  64.     }
  65.    
  66.  
  67. };
  68.  
  69.  
  70. int main()
  71. {
  72.     setlocale(LC_ALL, "Rus");
  73.     int i, a, n = 5;//колличество элементов списка
  74.     c_data s;
  75.  
  76.  
  77.     for (i = 1; i<n; i++)
  78.     {
  79.         s.dobavitChislo();       
  80.     }
  81.  
  82.  
  83.     //--Вывод списка--//
  84.     s.vivod();
  85.  
  86.     //--поиск элемента--//
  87.     s.poisk();
  88.     //--Конец вывода списка--//
  89.     return(0);
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement