jezv 1 gadu atpakaļ
revīzija
26778f685d
3 mainītis faili ar 71 papildinājumiem un 0 dzēšanām
  1. 59 0
      List.h
  2. BIN
      main
  3. 12 0
      main.cpp

+ 59 - 0
List.h

@@ -0,0 +1,59 @@
+#include <iostream>
+#include <any>
+
+template <typename T>
+struct Node
+    {
+        T value;
+        Node* next = nullptr;
+        Node* prev = nullptr;
+    };
+
+template <typename T>
+class List
+{
+    private:
+    Node<T>* start = nullptr;
+    Node<T>* end = nullptr;
+
+    public:
+    List()
+    {
+        Node<T>* start = nullptr;
+        Node<T>* end = nullptr;
+    }
+
+    void add(T value)
+    {
+        Node<T>* node = new Node<T>;
+        node->value = value;
+        if(start==nullptr) {
+            start = node;
+            end = node;
+            return;
+        }
+        node->prev = end;
+        end->next = node;
+        end = node;
+    }
+
+    void pop()
+    {
+        end = end->prev;
+        end->next = nullptr;
+    }
+
+    friend std::ostream &operator <<(std::ostream &os, List &c)
+    {
+        os << "( ";
+        Node<T>* currentNode = c.start;
+        while (currentNode->next!=nullptr)
+        {
+            os << currentNode->value << " = ";
+            currentNode = currentNode->next;
+        }
+        os << currentNode->value << " )";
+        delete currentNode;
+        return os;
+    }
+};

BIN
main


+ 12 - 0
main.cpp

@@ -0,0 +1,12 @@
+#include "List.h"
+#include <iostream>
+
+using namespace std;
+
+int main() {
+    List<int> l;
+    for(int i = 0; i < 10; i++) l.add(i);
+    cout << l << endl;
+    l.pop();
+    cout << l << endl;
+}