线性表节点的插入和删除算法
''''作者: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
=============================================== 欢迎大家发表看法,有问题的地方大家请指正,谢谢! ===============================================
没有相关教程
|