求使用C#实现队列、堆栈、二叉树的算法或伪代码或原代码或搜索路径等。

解决方案 »

  1.   

    C#中的类库中已经有队列了,不用你来写了:)System.Collections.Specialized.Queue
      

  2.   

    也就是说,不可能用C#来表示所有的数据结构,C/C++可以
      

  3.   

    原来我不信,现在我信了。//CSDN中的确没有大佬。//如果已经有的就可以不去做,那么何谓百丈高楼平地起;
    //如果已经有的就可以不去做,那么学习倒底做什么;
    //如果已经有的就可以不去做,那么为什么需要除机器语言以外的所有语言;
    //如果已经有的就可以不去做,那么为什么需要程序设计。
      

  4.   

    指针不安全哦,还不如用Collection类自己做一个
      

  5.   

    http://www.cnblogs.com/helimin19/articles/106945.html
      

  6.   

    楼主提到的都是最基本的数据结构, 照书中描述的算法写不难吧?另: 指针可以在unsafe C#代码中使用
      

  7.   

    这个是以前帮同学写的队列, 参考一下吧using System;namespace QueueWithCSharp
    {
        /// <summary>
        /// LinkList 的摘要说明。
        /// </summary>
        ///     public class Node
        {
            public int data;
            public Node prior, next;
            
            public Node()
            {
                prior = null;
                next = null;
                data = 0;
            }
        }    public class Queue
        {
            Node head, rear;
            int length;        public int Length
            {
                get
                {
                    return length;
                }
            }       
     
            public Queue()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
                head = rear = null;
                length = 0;
            }        public void EnQueue(int data) // 追加
            {
                if (rear == null)
                {
                    rear = new Node();
                    head = rear;
                    rear.data = data;
                    length ++;
                }
                else
                {
                    rear.next = new Node();
                    rear.next.data = data;
                    length ++;
                    rear = rear.next;
                }
            }        public int DeQueue()
            {
                if (length <= 0)
                {
                    rear = head = null;
                    Console.WriteLine("队列中没有元素");
                    return 0;
                }
                int data = head.data;
                head = head.next;
                length --;
                return data;
            }        public void Print()
            {
                string str = "";
                Node current = head;
                while (current != null)
                {
                    if (current == head)
                    {
                        str +=  current.data.ToString();
                    }
                    else
                    {
                        str += " <- " + current.data.ToString();
                    }
                    current = current.next;
                }// end while current
                Console.WriteLine(str);
            }
        }
    }
      

  8.   

    sha,说话都不分环境的,而且偷换概念如果是在学习过程中,你重作什么都没有关系,讨论这种情况没有意义如果是做项目,已经有的可以满足要求当然可以拿来用的,重复制造轮子什么意思知道吗?你家将来盖房子都是自己做窑厂然后烧砖然后制造水泥然后制造涂料。。然后自己盖的啊。即便是装修房子也得用别人制造的工具吧。如果现有的不能满足要求,重作就重作了,csdn有没有大佬和这个有关系吗?丫逻辑不通还跑来瞎哄哄。
    --------------------------------------
    :原来我不信,现在我信了。
    :
    ://CSDN中的确没有大佬。
    :
    ://如果已经有的就可以不去做,那么何谓百丈高楼平地起;
    ://如果已经有的就可以不去做,那么学习倒底做什么;
    ://如果已经有的就可以不去做,那么为什么需要除机器语言以外的所有语言;
    ://如果已经有的就可以不去做,那么为什么需要程序设计。
    :