Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Vezba_04_2017
- {
- class GenericQueueNode<T>
- {
- public GenericQueueNode(T content)
- {
- Content = content;
- }
- public T Content { get; set; }
- public GenericQueueNode<T> next { get; set; }
- }
- class GenericQueue<T>
- {
- private GenericQueueNode<T> _head;
- private GenericQueueNode<T> _tail;
- public bool IsEmpty
- {
- get { return _head == null; }
- }
- public void Put(T x)
- {
- GenericQueueNode<T> newNode = new GenericQueueNode<T>(x);
- if (IsEmpty)
- {
- _head = newNode;
- _tail = newNode;
- }
- else
- {
- _tail.next = newNode;
- _tail = newNode;
- }
- }
- public T Get()
- {
- if (IsEmpty)
- throw new InvalidOperationException("D kju is empti");
- T x = _head.Content;
- if(_head == _tail)
- {
- _head = null;
- _tail = null;
- }
- else
- {
- _head = _head.next;
- }
- return x;
- }
- public override string ToString()
- {
- StringBuilder sb = new StringBuilder();
- GenericQueueNode<T> node = _head;
- while(node != null)
- {
- sb.AppendFormat("{0} ", node.Content);
- node = node.next;
- }
- return sb.ToString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement