应用数据结构(一)线性表节点的插入和删除算法

王朝vb·作者佚名  2006-01-08
宽屏版  字体: |||超大  

线性表节点的插入和删除算法

'作者: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

===============================================

欢迎大家发表看法,有问题的地方大家请指正,谢谢!

===============================================

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有