天天看点

C#实现栈和队列

栈,利用单向链表实现:

public abstract class abstractstack

    {

        public abstract object pop();

        public abstract void push(object obj);

        public abstract bool isempty();

        public abstract object top();

        public abstract void clear();

    }

    public class stack : abstractstack

        private slist list;

        public stack()

        {

            list = new slist();

        }

        public override bool isempty()

            return list.isempty();

        public override void push(object obj)

            list.push(obj);

        public override object pop()

            return list.pop();

        public override object top()

            return list.gettail();

        public override void clear()

            list.clear(); 

 public interface queue

        bool isempty();

        void enqueue(object obj);

        object dequeue();

        object first();

    public class listqueue:queue

        private linkedlist list;

        public listqueue()

            list = new linkedlist();

        public bool isempty()

        public void enqueue(object obj)

        public object dequeue()

            return list.shift();

        public object first()

            return list.gethead();

文章转自庄周梦蝶  ,原文发布时间5.17