forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Стек на базе одностороннего связного стека (http://forum.boolean.name/showthread.php?t=15529)

foldel 22.09.2011 22:19

Стек на базе одностороннего связного стека
 
Кто может дать пример реализации стека на базе одностороннего связного стека?

ffinder 22.09.2011 22:53

Ответ: Стек на базе одностороннего связного стека
 
какая может быть реализация? два метода: push и pop
красота такого стека в том, что предидущие элементы ничего не знают о последующих, и самого стека как структуры тоже фактически нет.
необходимо знать только верхушку стека (последний добавленный элемент).
т.е. элемент стека состоит из двух полей, собственно данных и указателя на предидущий элемент. самый первый элемент в указывает на null.

pax 23.09.2011 11:18

Ответ: Стек на базе одностороннего связного стека
 
На C# по описанию ffinder'a:
PHP код:

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("В стеке отсутствуют элементы!");
    }





Часовой пояс GMT +4, время: 10:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot