zoukankan      html  css  js  c++  java
  • 顺序表(线性表)操作的思想及实现之C#版

    顺序表(线性表)操作的思想及实现之C#版

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public int LocateElement(T item)
    {
        if (this.intPointLast==-1)
        {
            Console.WriteLine("there is no element in this linear list");
            return -1;
        }
        for (int i = 0; i <= this.intPointLast; i++)
        {
            if (this.tItems[i].Equals(item))//若是自定义类型,则T类必须把Equals函数override
            {
                return i;
            }
        }
        Console.WriteLine("No found");
        return -1;
    }

    反转线性表Reverse()

    继续吸取之前的经验教训,要对一个线性表进行操作,线性表必须不为空,因此第一步就是判断线性表是否为空,当线性表不为空的时候,我们该如何使用循环对其进行反转呢?先设定一个游标从起始位置,但是循环的终结点在哪里?经过分析我们可以知道,只需要将循环终结点设定在线性表长度一半的位置,然后将i位置的元素值与intPointLast-i位置元素的值进行颠倒即可,于是便有了以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public void Reverse()
    {
        if (this.intPointLast == -1)
        {
            Console.WriteLine("there is no element in this linear list");
        }
        else
        {
            int i = 0;
            int j = this.GetLength() / 2;//结果取下界整数用于循环
            while (i<j)
            {
                T tmp = this.tItems[i];
                this.tItems[i] = this.tItems[this.intPointLast - i];
                this.tItems[this.intPointLast - i] = tmp;
                i++;
            }
        }
    }

    好吧,顺序表的部分常用操作就介绍到这里~生活开心,学习愉快~

     
     
  • 相关阅读:
    关键路径的计算
    JSF简单介绍
    介绍:一款Mathematica的替代开源软件Mathetics
    素材链接
    JSP动作--JSP有三种凝视方式
    【InversionCount 逆序对数 + MergeSort】
    全响应跨设备的Zoomla!逐浪CMS2 x2.0正式公布
    DirectSound的应用
    “海归”首选北上广 薪资期望不太高-有感
    Servlet登陆功能的实现
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2943477.html
Copyright © 2011-2022 走看看