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

    线性表是线性结构的抽象

    线性结构的特点是结构中的数据元素之间存在一对一的线性关系

    一对一的关系指的是数据元素之间的位置关系

    (1)除第一个位置的数据元素外,其它数据元素位置的前面都只有一个数据元素

    (2)除最后一个位置的数据元素外,其它数据元素位置的后面都只有一个元素

    数据元素是一个接一个的排列。因此,可以把线性表想象为一种数据元素序列的数据结构

    线性表的接口定义:

    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); //按值查找
    }

      

    1、求长度:GetLength()
    初始条件:线性表存在;
    操作结果:返回线性表中所有数据元素的个数。
    2、清空操作:Clear()
    初始条件:线性表存在且有数据元素;
    操作结果:从线性表中清除所有数据元素,线性表为空。
    3、判断线性表是否为空:IsEmpty()
    初始条件:线性表存在;
    操作结果:如果线性表为空返回 true,否则返回 false。
    4、附加操作:Append(T item)
    初始条件:线性表存在且未满;
    操作结果:将值为 item 的新元素添加到表的末尾。
    5、插入操作:Insert(T item, int i)
    初始条件:线性表存在,插入位置正确()(1≤i≤n+1,n 为插入前的表长)。
    操作结果:在线性表的第 i 个位置上插入一个值为 item 的新元素,这样使得
    原序号为 i,i+1,…,n 的数据元素的序号变为 i+1,i+2,…,n+1,插入后表长=原
    表长+1。
    6、删除操作:Delete(int i)
    初始条件:线性表存在且不为空,删除位置正确(1≤i≤n,n 为删除前的表
    长)。
    操作结果:在线性表中删除序号为 i 的数据元素,返回删除后的数据元素。
    删除后使原序号为 i+1,i+2,…,n 的数据元素的序号变为 i,i+1,…,n-1,删除后
    表长=原表长-1。
    7、取表元:GetElem(int i)
    初始条件:线性表存在,所取数据元素位置正确(1≤i≤n,n 为线性表的表
    长);
    操作结果:返回线性表中第 i 个数据元素。
    8、按值查找:Locate(T value)
    初始条件:线性表存在。
    操作结果:在线性表中查找值为 value 的数据元素,其结果返回在线性表中
    首次出现的值为 value 的数据元素的序号,称为查找成功;否则,在线性表中未
    找到值为 value 的数据元素,返回一个特殊值表示查找失败。

  • 相关阅读:
    Atitit 提升开发进度大方法--高频功能与步骤的优化 类似性能优化
    Atitit 翻页功能的解决方案与版本历史 v4 r49
    Atitit.pagging  翻页功能解决方案专题 与 目录大纲 v3 r44.docx
    Atitit 视图参数解决方案 oracle版和mysql版本 attilax总结.docx
    Atitit easyui翻页组件与vue的集成解决方案attilax总结
    Atitit  技术经理职责与流程表总结
    Atitit 数据库视图与表的wrap与层级查询规范
    Atitit 手机图片备份解决方案attilax总结
    Atitit 提升进度的大原则与方法  高层方法  attilax总结
    Atiitt 使用java语言编写sql函数或存储过程
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/9999040.html
Copyright © 2011-2022 走看看