Advertisement
Shahar_Goldenberg

Untitled

Nov 18th, 2022
825
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.86 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp1
  4. {
  5.     class program
  6.     {
  7.         static public void Main()
  8.         {
  9.             linkedList l1 = new linkedList();
  10.             for(int i = 1; i <1000; ++i)
  11.             {
  12.                 Random rd = new Random();
  13.                 l1.add(rd.Next(0, 1000));
  14.             }
  15.             l1.print();
  16.  
  17.             linkedList l2 = new linkedList();
  18.             for (int i = 1; i < 1000; ++i)
  19.             {
  20.                 Random rd = new Random();
  21.                 l1.add(rd.Next(0, 1000));
  22.             }
  23.             l2.print();
  24.             note n = l2.getHead();
  25.             for (int i = 1; i < 1000; ++i)
  26.             {
  27.                 if(n._data % 2 == 0) { l2.remove(n); }
  28.                 n = n.getNext();
  29.             }
  30.             l2.print();
  31.         }
  32.     }
  33.     class note
  34.     {
  35.         public note _next;
  36.         public note _prev;
  37.         public int _data;
  38.         public note(int val)
  39.         {
  40.             _next = null;
  41.             _prev = null;
  42.             _data = val;
  43.         }
  44.         public note getNext() { return _next; }
  45.         public note getPrev() { return _prev; }
  46.     }
  47.  
  48.     class linkedList
  49.     {
  50.         private note _head;
  51.         private note _tail;
  52.         public int _len;
  53.         public linkedList()
  54.         {
  55.             _tail = null;
  56.             _head = null;
  57.             _len = 0;
  58.         }
  59.  
  60.         public note getHead() { return _head; }
  61.         public note getNote(int index)
  62.         {
  63.             note n = _head;
  64.             for (int i = 0; i < index; ++i)
  65.             {
  66.                 n = n.getNext();
  67.             }
  68.             return n;
  69.         }
  70.         public int getLen() { return _len; }
  71.         public void add(int val)
  72.         {
  73.             if(_head == null)
  74.             {
  75.                 _head = new note(val);
  76.                 _tail = _head;
  77.             }
  78.             else
  79.             {
  80.                 note n = new note(val);
  81.                 _tail._next = n;
  82.                 _tail = n;
  83.             }
  84.             _len++;
  85.         }
  86.         public void insert(int index, int val)
  87.         {
  88.             note prev = _head;
  89.             note n = new note(val);
  90.  
  91.             for (int i = 0; i < index; ++i)
  92.             {
  93.                 prev = prev.getNext();
  94.             }
  95.             n._next = prev._next;
  96.             prev._next = n;
  97.             _len++;
  98.         }
  99.         public void removeAt(int index)
  100.         {
  101.             note prev = _head;
  102.             for (int i = 0; i < index; ++i)
  103.             {
  104.                 prev = prev.getNext();
  105.             }
  106.             prev._next = prev.getNext().getNext();
  107.             _len--;
  108.         }
  109.         public void remove(note n)
  110.         {
  111.             n._next = n.getNext().getNext();
  112.             n._prev = n.getPrev().getPrev();
  113.             _len--;
  114.         }
  115.         public int get(int index)
  116.         {
  117.             note n = _head;
  118.             for (int i = 0; i < index; ++i)
  119.             {
  120.                 n = n.getNext();
  121.             }
  122.             return n._data;
  123.         }
  124.         public int find(int val)
  125.         {
  126.             note n = _head;
  127.             for (int i = 0; i < _len; ++i)
  128.             {
  129.                 n = n.getNext();
  130.                 if(n._data == val)
  131.                 {
  132.                     return n._data;
  133.                 }
  134.             }
  135.             return -1;//לבדוק מה להחזיר את המספר לא נמצא
  136.         }
  137.         public void print()
  138.         {
  139.             note n = _head;
  140.             while (n != null)
  141.             {
  142.                 Console.WriteLine(n._data);
  143.                 n = n.getNext();
  144.             }
  145.         }
  146.         public void printReverse()
  147.         {
  148.             note n = _tail;
  149.             while (n != null)
  150.             {
  151.                 Console.WriteLine(n._data);
  152.                 n = n.getPrev();
  153.             }
  154.         }
  155.     }
  156. }
  157.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement