顺序表

顺序表的基本操作:

public class SeqList

    {
      private int maxsize; //顺序表的最大容量
      private int[] data; //数组,用于存储顺序表中的数据元素
      private int length; //顺序表的实际长度
      //实际长度属性
      public int Length
      {
        get
        {
          return length;
        }
      }
      //表数据
      public int[] Data
      {
          get
          {
              return data;
          }
      }
      //最大容量属性
      public int Maxsize
      {
        get
        {
          return maxsize;
        }
        set
        {
          maxsize = value;
        }
      }
      //初始化线性表
      public SeqList(int size)
      {
        maxsize = size;
        data = new T[maxsize];
        length = 0;
      }
      //在顺序表的末尾追加数据元素
      public void InsertNode(int a)
      {
        if (IsFull())
        {
          Console.WriteLine("insert Error");
          return;
        }
        data[length] = a;
        length++;
      }
      //在顺序表的第i个数据元素的位置插入一个数据元素a
      public void InsertNode(int a, int i)
      {
        if (IsFull())
        {
          Console.WriteLine("List is full");
          return;
        }
        if (i < 1 || i > length  + 1)
        {
          Console.WriteLine("Position is error!");
          return;
        }
        else
        {
          for (int j = length-1; j >= i - 1; j--)
          {
            data[j + 1] = data[j];//让第i-1个数据元素后移
          }
          data[i - 1] = a;//将该元素插入i位置
        }
       length++;
      }
      //删除顺序表的第i个数据元素
      public void  DeleteNode(int i)
      {
       if (IsEmpty())
        {
          Console.WriteLine("List is empty");
          return;
        }
        if (i < 1 || i > length)
        {
          Console.WriteLine("Position is error!");
          return;
        }
       for (int j = i; j <length; j++)
          {
            data[j-1] = data[j];//让i个元素前移
          }
        length --;
       }
       //获得顺序表的第i个数据元素
       public int SearchNode(int i)
       {
         if (IsEmpty() || (i < 1) || (i > length))
         {
           Console.WriteLine("List is empty or Position is error!");
           return default(T);
         }
         return data[i - 1];
       }
       //在顺序表中查找值为value的数据元素
       public int SearchNode(int value)
       {
         if (IsEmpty())
         {
           Console.WriteLine("List is Empty!");
           return default(T);
         }
         int i = 0;
         for (i = 0; i <length; i++)
         {
           if (data[i].ToString().Contains(value.ToString ()))
           {
             break;
           }
         }
         if (i >=length)
         {
           return default(T);
         }
         return data[i];
       }
      //求顺序表的长度
      public int GetLength()
      {
        return length;
      }
      //清空顺序表
      public void Clear()
      {
        length=0;
      }
      //判断顺序表是否为空
      public bool IsEmpty()
      {
        if (length ==0)
        {
          return true;
        }
        else
        {
          return false;
        }
      }
      //判断顺序表是否为满
      public bool IsFull()
      {
        if (length == maxsize)
        {
          return true;
        }
        else
        {
          return false;
        }
      }
    }
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值