Ejemplo n.º 1
0
        public MyLinkedStack(MyStack <T> s)
        {
            Count = s.Count;
            T[] data = new T[Count];
            s.CopyTo(data, 0);
            Node <T> n = new Node <T>(data[0]);

            for (int i = 1; i < Count; i++)
            {
                n.next      = new Node <T>(data[i]);
                n.next.prev = n;
                n           = n.next;
            }
            Top = n;
        }
Ejemplo n.º 2
0
        public MyArrayStack(MyStack <T> Stack)
        {
            Count = Stack.Count;
            MyArrayStack <T> s = Stack as MyArrayStack <T>;

            if (s != null)
            {
                Capacity = s.Capacity;
            }
            else
            {
                Capacity = (Count / 10 + 1) * 10;
            }
            data = new T[Capacity];
            s.CopyTo(data, 0);
        }
Ejemplo n.º 3
0
        //переопределение стандартных методов

        public override bool Equals(object obj)
        {
            MyStack <T> s = obj as MyStack <T>;

            if (s == null || Count != s.Count)
            {
                return(false);
            }
            else
            {
                bool b = true;
                int  i = 0;
                while (i < Count && b == true)
                {
                    if (!this[i].Equals(s[i]))
                    {
                        b = false;
                    }
                    i++;
                }
                return(b);
            }
        }