zoukankan      html  css  js  c++  java
  • C#数据结构(一)线性表

    最近要给一个打算学.net的朋友准备些资料,同时自己在数据结构方面也有些薄弱,所以打算从头看看。
    弄了一个电子版的C#数据结构,把书里的代码敲了敲,颇有收益。打算整理一下,如果您也跟我一样有空不妨跟着再学学。

    线性表是最简单、最基本、最常用的数据结构。
    线性结构的特点是结构中的数据元素之间存在一对一的线性关系。
    这种一对一的关系指的是数据元素之间的位置关系,即:
    (1)除第一个位置的数据元素外,其它数据元素位置的前面都只有一个数据元素;
    (2)除最后一个位置的数据元素外,其它数据元素位置的后面都只有一个元素。

    1、线性表

        /// <summary>
        
    /// 1、线性表   
        
    /// 线性表的接口表示
        
    /// </summary>
        public interface IlistDS<T>
        {
            
    int GetLength();             //求长度 
            void Clear();                //清空操作
            bool IsEmpty();              //判断线性表是否为空 
            void Append(T item);         //附加操作
            void Insert(T item, int i);  //插入操作
            T Delete(int i);             //删除操作
            T GetElem(int i);            //取表元 
            int Locate(T value);         //按值查找 
            
    //---补充
            void Reverse();              //倒置(任何线性表都可以倒置)
        }

    2、顺序表

    顺序表

        顺序表的几个例子

    顺序表的几个例子

    3、单链表

    单链表
    单链表节点
    单链表的几个例子

      C#中的线性表

      非泛型Ilist接口继承自ICollection和IEnumerable,是所有线性表的基接口。

      ArrayList(顺序表)、ListDictionary、StringCollection、StringDictionary继承自Ilist。

      泛型Ilist<T>接口继承自ICollection<T>、IEnumerable<T>、IEnumerable。是所有泛型线性表的基接口。

      List<T>等一些集合类实现了Ilist<T>。

      List<T>是 ArrayList 在泛型中的替代品。List<T>的性能比 ArrayList 有很大改变。

      1、ArrayList 默认的 Capacity 是 16,而 List<T>的默认 Capacity是 4;

      2、List<T>的方法不是虚拟方法(ArrayList 的方法是虚拟方法) ,这样可以利用函数内联来提高性能(虚函数不可以被内联);

    --

    C#数据结构下载:CSharp数据结构(2.0版)电子书.rar

  • 相关阅读:
    python的多线程问题
    python 调用函数时使用星号 *, **
    python正则中的贪婪与非贪婪
    python中文处理
    Python 模块之 ConfigParser: 用 Python 解析配置文件
    substr使用注意
    [转]互联网后台服务的协议设计
    Java设计模式从精通到入门四 工厂方法模式
    logback中logger详解
    logback实践笔记
  • 原文地址:https://www.cnblogs.com/tenghoo/p/Data_Structures_List.html
Copyright © 2011-2022 走看看