线性表节点的插入和删除算法
'作者:snowcloud2002
'插入节点
'函数名称: nodeinsert(pos as integer, num as integer, tablename as variant) as boolean
'参数: pos as integer要插入节点的位置,num as integer要插入的数值,tablename as variant线性表名称
'返回值: boolean
function nodeinsert(pos as integer, num as integer, tablename as variant
'改变源线性表长度:插入结点后线性表长度加一
redim preserve tablename(ubound(tablename) + 1)
'对线性表中第i个元素到最后一个元素的位置后移一位
for i = (ubound(tablename)) to (pos + 1) step -1
if i < 1 or i > (ubound(tablename)) then
insert = false
exit function
else
tablename(i) = tablename(i - 1)
end if
next
'将要插入的元素放到第i个位置
tablename(i) = num
insert = true
end function
'删除节点
'函数名称: nodedelete(pos as integer, tablename as variant) as boolean
'参数: pos as integer要删除节点的位置,tablename as variant线性表名称
'返回值: boolean
function nodedelete(pos as integer, tablename as variant) as boolean
'对线性表中第i个元素到最后一个元素的位置前移一位
for i = pos to (ubound(tablename))
if i < 1 or i > (ubound(tablename)) then
delete = false
exit function
else
tablename(i - 1) = tablename(i)
end if
next
'改变源线性表长度:删除结点后线性表长度减一
redim preserve tablename(ubound(tablename) - 1)
delete = true
end function
===============================================
欢迎大家发表看法,有问题的地方大家请指正,谢谢!
===============================================