Показать сообщение отдельно
Старый 23.09.2011, 11:18   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Стек на базе одностороннего связного стека

На C# по описанию ffinder'a:
public class LinkedStack<T>
{
    private class 
LinkedStackItem<T>
    {

        public 
LinkedStackItem(T itemLinkedStackItem<Tparent)
        {
            
Value item;
            
Parent parent;
        }

        public 
T Value get; private set; }

        public 
LinkedStackItem<TParent get; private set; }
    }

    private 
LinkedStackItem<T_current;
    public 
int Count get; private set; }

    public 
void Push(T item)
    {
        
_current = new LinkedStackItem<T>(item_current);
        
Count++;
    }

    public 
T Pop()
    {
        if (
Count 0)
        {
            
T val _current.Value;
            
Count--;
            
_current _current.Parent;
            return 
val;
        }

        throw new 
InvalidOperationException("В стеке отсутствуют элементы!");
    }

    public 
T Peak()
    {
        if (
Count 0)
        {
            return 
_current.Value;
        }

        throw new 
InvalidOperationException("В стеке отсутствуют элементы!");
    }


__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием