zoukankan      html  css  js  c++  java
  • 线性表 C#实现

    概念

      主要参考C#数据结构一书

      线性表顺序表

    代码

    线性表接口

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace CSharpDemo
    {
        public interface ILinearList<T>
        {
            int GetLength();
    
            void Clear();
    
            bool IsEmpty();
    
            void Append(T item);
    
            void Insert(T item, int i);
    
            void Delete(int i);
    
            T GetElement(int i);
    
            int Locate(T item);
        }
    }
    

     顺序表

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace CSharpDemo
    {
        /// <summary>
        /// 顺序表实现
        /// </summary>
        /// <typeparam name="T"></typeparam>
        public class SequenceList<T>:ILinearList<T>
        {
            #region Field and Property
            
            private int maxsize;
            private T[] data;
            private int last;
    
            public int MaxSize
            {
                get
                {
                    return this.maxsize;
                }
                set
                {
                    this.maxsize = value;
                }
            }
    
            public int Last
            {
                get
                {
                    return this.last;
                }
            }
    
            #endregion
    
            public T this[int i]
            {
                get
                {
                    return data[i];
                }
                set
                {
                    data[i] = value;
                }
            }
    
            public SequenceList(int size)
            {
                this.MaxSize = size;
                data = new T[size];
                last = -1;
            }
    
            #region ILinearList<T> Member
    
            public int GetLength()
            {
                return last + 1;
            }
    
            public void Clear()
            {
                last = -1;
            }
    
            public bool IsEmpty()
            {
                return last == -1 ? true : false;
            }
    
            public void Append(T item)
            {
                data[++last] = item;
            }
    
            public void Insert(T item, int index)
            {
                for (int i = last; i >= index; i--)
                {
                    data[i + 1] = data[i];
                }
    
                data[index] = item;
                ++last;
            }
    
            public void Delete(int index)
            {
                for (int i = index; i <= last; i++)
                {
                    data[i] = data[i + 1];
                }
    
                --last;
            }
    
            public T GetElement(int index)
            {
                if (IsEmpty())
                {
                    return default(T);
                }
    
                return data[index];
            }
    
            public int Locate(T item)
            {
                int flag = -1;
    
                for (int i = 0; i <= last; i++)
                {
                    if (item.Equals(data[i]))
                    {
                        flag = i;
                        break;
                    }
                }
    
                return flag;
            }
    
            #endregion
    
            public override string ToString()
            {
                string dataString = string.Empty;
    
                for (int i = 0; i <= last; i++)
                {
                    dataString += data[i] + " ";
                }
    
                return dataString;
            }
        }
    }
    

      

      

  • 相关阅读:
    scroll-behavior 让滚动更顺滑
    CSS3实现类似装订(缝纫)效果
    hadoop伪分布安装
    开始hadoop
    Boostrap 模态框 水平垂直居中问题
    ASP.NET MVC 下 引用阿里巴巴和IconFont字体路径404问题
    ajax 初始化请求前携带参数
    边框圆角方法
    DIV 清除样式浮动万能代码
    ASP.NET MVC 增强Convert用法+【分页2】
  • 原文地址:https://www.cnblogs.com/xqhppt/p/2317102.html
Copyright © 2011-2022 走看看