向量的运算知识点
上一个知识点   下一个知识点


本节概述 本节知识点 本节总结

二、向量的运算

针对数组存储结构,重点讨论向量元素的插入和删除运算。插入过程中需要检查向量实际元素个数k不得超过最大长度(整数msize),删除过程需要检查是否为空表。
    插入算法:
viod insert(ELEM item)  {
       // 需要检查当前长度不能等于msize,当前游标指针
       // curr不能小于0,也不能大于当前长度
       assert((curr_len < msize) && (curr >= 0)  && ( curr <= curr_len));
       // 此条件不满足时,程序异常,退出运行
       // 从表尾curr_len-1起往右移动直到curr
       for (int i=curr_len; i>curr; i--)
             nodelist[i] = nodelist[i-1];
      // 当前指针处插入新元素
      nodelist[curr] = item;
      // 表的实际长度curr_len加1
      curr_len++;
}
    删除算法:
ELEM remove()  {
        // 首先需要检验当前长度不能等于0, 当前指针
        // curr不能小于0,不能等于curr_len
        assert( (curr_len != 0) && (curr >= 0) && ( curr < curr_len ) );
        //  若上述条件为假,则程序异常,退出运行
        ELEM temp = nodelist[curr];
        // 从指针curr到curr_len每个元素往前移一格
        for (int i = curr; i < curr_len - 1; i++)
              nodelist[i] = nodelist[i +1];
        curr_len--;       // 表的实际长度cur_len减1
         return temp;   // 返回值是进入时的旧值
}