|
二、向量的运算
针对数组存储结构,重点讨论向量元素的插入和删除运算。插入过程中需要检查向量实际元素个数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; // 返回值是进入时的旧值
}
|