Advertisement
przemo539

Lista jednostonnie wiązana V2

Apr 27th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6. struct node{
  7.     node * Next;
  8.     int value;
  9. };
  10.  
  11. struct lista{
  12.     node * H;
  13.     int size;
  14.  
  15.     lista(){
  16.         H= NULL;
  17.         size = 0;
  18.     }
  19.     bool isEmpty(){
  20.         if(size==0) return true; else return false;
  21.     }
  22.  
  23.     void ADD(int val){
  24.         node * temp = new node;
  25.         temp->value=val;
  26.         if(isEmpty()){
  27.             temp->Next=H;
  28.             H = temp;
  29.         }else{
  30.             node * ostatni_element = new node;
  31.             ostatni_element=H;
  32.             while(ostatni_element->Next!=NULL){
  33.                 ostatni_element=ostatni_element->Next;
  34.             }
  35.             temp->Next=ostatni_element->Next;
  36.             ostatni_element->Next = temp;
  37.         }
  38.         size++;
  39.     }
  40.    
  41.     void SHOW(){
  42.         node * temp;
  43.         temp =H;
  44.         cout << "ELEMENTY LISTY: \n";
  45.         int numer =1;
  46.         while(temp !=NULL){
  47.             cout <<numer<<". "<< temp->value <<endl;
  48.             temp=temp->Next;
  49.             numer++;
  50.         }
  51.     }
  52.     bool DELL(int numer){
  53.         if(numer>size || numer <1) return 0;
  54.         int number = 1;
  55.         node* temp, *przedostatni=NULL;
  56.         temp = H;
  57.         while(temp->Next != NULL && number < numer){
  58.             przedostatni=temp;
  59.             temp=temp->Next;
  60.             number++;
  61.         }
  62.         if(przedostatni==NULL){
  63.             H=temp->Next;
  64.         }else{
  65.             przedostatni->Next=temp->Next;
  66.         }
  67.         delete temp;
  68.         return 1;
  69.     }
  70.     int FIND(int val){
  71.         if(isEmpty()) return 0;
  72.         node * temp = H;
  73.         int number = 1;
  74.         while(temp!=NULL){
  75.             if(temp->value == val) return number;
  76.             temp=temp->Next;
  77.             number++;
  78.         }
  79.         return 0;
  80.     }
  81.     bool FINDtoDELL(int val){
  82.         int numer = FIND(val);
  83.         if(numer != 0 ) return DELL(numer);
  84.         return 0;
  85.     }
  86. };
  87.  
  88. int main(){
  89.     lista nowa;
  90.     nowa.ADD(1);
  91.     nowa.ADD(2);
  92.     nowa.ADD(3);
  93.     cout << nowa.isEmpty();
  94.     nowa.SHOW();
  95.     cout << nowa.FINDtoDELL(3);
  96.     nowa.SHOW();
  97.     system("pause");
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement