zoukankan      html  css  js  c++  java
  • 一个简单的通用序列数据结构

    最近经常用到序列的结构,就是一个动态的列表,里面的所有数据都按照顺序排列。

    故写了一个通用的泛型结构,虽然效率不怎么样,但也简单适用。

    代码如下:

    class Program
    {
        static void Main(string[] args)
        {
            var v = new Sequence<int>();
            while (true)
            {
                int k = int.Parse(Console.ReadLine());
                v.Add(k);
                Console.WriteLine(v);
            }
        }
    }

    class Sequence<T> : IEnumerable<T>
    where T : IComparable<T>
    {
        LinkedList<T> nodes = new LinkedList<T>();

        public void Add(T value)
        {
            LinkedListNode<T> node = new LinkedListNode<T>(value);
            if (nodes.Count == 0)
            {
                nodes.AddFirst(node);
                return;
            }
            if (value.CompareTo(nodes.First.Value) < 0)
            {
                nodes.AddFirst(node);
                return;
            }
            if (value.CompareTo(nodes.Last.Value) > 0)
            {
                nodes.AddLast(node);
                return;
            }

            LinkedListNode<T> before = null;
            for (before = nodes.First; before != nodes.Last; before = before.Next)
            {
                if (value.CompareTo(before.Value) >= 0 && value.CompareTo(before.Next.Value) <= 0)
                    break;
            }

            nodes.AddAfter(before, node);
            return;
        }

        public override string ToString()
        {
            List<string> s = new List<string>();
            foreach (var item in nodes)
            {
                s.Add(item.ToString());
            }
            return string.Join(",", s.ToArray());
        }

    #region IEnumerable<T> Members

        public IEnumerator<T> GetEnumerator()
        {
            return nodes.GetEnumerator();
        }

    #endregion

    #region IEnumerable Members

        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return nodes.GetEnumerator();
        }

    #endregion
    }

  • 相关阅读:
    Angular2 初识
    TypeScript 函数 (五)
    TypeScript 接口(三)
    TypeScript 基本类型(一)
    TypeScript 变量声明(二)
    Web API中的模型验证Model Validation
    DataContract 和 DataMember
    (推荐JsonConvert )序列化和反序列化Json
    9、DFA最小化,语法分析初步
    8.非确定的自动机NFA确定化为DFA
  • 原文地址:https://www.cnblogs.com/TianFang/p/860321.html
Copyright © 2011-2022 走看看