注册 登录
编程论坛 C# 论坛

队列的删除(出对)

赵横彬 发布于 2014-02-27 19:44, 388 次点击
求大神教我,怎么编程队列的删除!!
2 回复
#2
wangnannan2014-02-28 08:53
你自己得多看数据结构和算法 队列的特点是先进先出 队列也可以可以用顺序表、链表实现,但队列最好不要用顺序表实现,因为元素加入队列和删除元素中的一种操作总会引起全部元素的移动,效率极低(循环队列除外)。
程序代码:
namespace {
    public class Queue<T>
    {
        protected SingleLinkedList<T> m_List;

        public bool IsEmpty
        {
            get { return m_List.IsEmpty; }
        }

        public int Count
        {
            get { return m_List.Count; }
        }

        public Queue()
        {
            m_List = new SingleLinkedList<T>();
        }

        public Queue(T t)
        {
            m_List = new SingleLinkedList<T>(t);
        }

        public T DeQueue()
        {
            T t = m_List.GetTail();
            m_List.RemoveTail();

            return t;
        }

        public void EnQueue(T t)
        {
            m_List.AddHead(t);
        }

        public T GetFront()
        {
            return m_List.GetTail();
        }

        public T GetRear()
        {
            return m_List.GetHead();
        }
    }
}

Queue<int> q1 = new Queue<int>();
Queue<int> q2 = new Queue<int>();
Random rnd = new Random();

for (int i = 0; i < 20; i++)
{
    int value = rnd.Next();

    if (value % 2 != 0)
    {
        q1.EnQueue(value);
    }
    else
    {
        q2.EnQueue(value);
    }
}

while (!q1.IsEmpty && !q2.IsEmpty)
{
    Console.WriteLine("奇偶数对:{0},{1}", q1.DeQueue(), q2.DeQueue());
}

#3
wangnannan2014-02-28 08:54
也不知道你看不看得明白 不明白自己去看书吧
1