Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Node<T>
- {
- T _value;
- public Node<T> next;
- public Node<T> prev;
- public void SetValue(T v)
- {
- _value = v;
- }
- public T GetValue()
- {
- return _value;
- }
- public void SetNodeNext(T newNode)
- {
- var tempNode = new Node<T>();
- tempNode.SetValue(newNode);
- next = tempNode;
- next.prev = this;
- }
- }
- ////////////////////////////////////////////////////
- public class LinkdList<T>
- {
- Node<T> first;
- Node<T> last;
- public void Initialization(T element)
- {
- first = new Node<T>();
- first.prev = null;
- first.SetValue(element);
- last = first;
- }
- public void Add(T element)
- {
- if (first == null)
- Initialization(element);
- else
- {
- last.SetNodeNext(element);
- last = last.next;
- }
- }
- public int Count()
- {
- int value = 0;
- var current = first;
- if (current == null)
- return value;
- while (current != null)
- {
- value++;
- current = current.next;
- }
- return value;
- }
- ///////////////////////////////////
- public class MyQueue<T> : IQueue<T>
- {
- private MyLinkedList<T> _queue;
- //Tiene algun elemento?
- public bool IsEmpty { get { return _queue.Count <= 0; } }
- //Cantidad de elementos
- public int Count { get { return _queue.Count; } }
- public MyQueue() { _queue = new MyLinkedList<T>(); }
- //Limpia la cola
- public void Clear() { _queue.Clear(); }
- //Saca el primer elemento de la cola
- public T Dequeue()
- {
- T element = Peek();
- _queue.RemoveFirst();
- return element;
- }
- //Inserta un elemento al final de la cola
- public void Enqueue(T element) { _queue.AddLast(element); }
- //Muestra el primer elemento de la cola
- public T Peek() { return _queue.First.Value; }
- }
- /////////////////////////////
- public class MyStack<T> : IStack<T>
- {
- private DynamicArray<T> _stack;
- //Tiene algun elemento?
- public bool IsEmpty { get { return _stack.Count <= 0; } }
- //Cantidad de elementos
- public int Count { get { return _stack.Count; } }
- public MyStack() { _stack = new DynamicArray<T>(); }
- //Limpia la cola
- public void Clear() { _stack.Clear(); }
- //Saca el primer elemento de la pila
- public T Pop()
- {
- T element = Peek();
- _stack.RemoveAt(_stack.Count - 1);
- return element;
- }
- //Muestra el primer elemento de la pila
- public T Peek() { return _stack[_stack.Count - 1]; }
- //Inserta un elemento al tope de la pila
- public void Push(T element) { _stack.Add(element); }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement