因為現在轉為使用Java,好久沒有用VB了,在 java版中看到josephus的貼子,隨意在VB中也開啟相關帖子。下面這個例子是在VB中自定義鏈表來實作的。
Option Explicit
Private pointerHead As Object
Public Sub CreateLinkList(n As Integer)
Dim pointer As Node
Dim nLoop As Integer
Static pointerLast As Node
pointerHead.data = 1
Set pointerLast = pointerHead
For nLoop = 2 To n
Set pointer = New Node
pointer.data = nLoop
Set pointerLast.pointerNext = pointer
Set pointer.pointerprevious = pointerLast
Set pointerLast = pointer
Next
Set pointerLast = Nothing
Set pointer.pointerNext = pointerHead
Set pointerHead.pointerprevious = pointer
End Sub
Public Function Josephus(m As Integer) As Integer
Dim i As Integer
Dim f As Integer
Dim p, p1 As Node
Set p = pointerHead
For i = 1 To m - 1
Set p = p.pointerNext
Next
Set p1 = p.pointerprevious
Set p1.pointerNext = p.pointerNext
f = p.data
Set p = p.pointerNext
Set p.pointerprevious = p1
Set pointerHead = p
Josephus = f
End Function
Private Sub Command1_Click()
Dim m As Integer
Dim n As Integer
Dim n1 As Integer
Dim msg As String
Set pointerHead = New Node
n = Val(Trim(Text1.Text))
m = Val(Trim(Text2.Text))
Call CreateLinkList(n)
Do While Not (pointerHead.pointerNext Is pointerHead)
n1 = Josephus(m)
msg = msg + "編號為" + Str(n1) + "的離隊;" + Chr(13)
Loop
msg = msg + "最后編號為" + Str(Josephus(m)) + "的獲勝。"
MsgBox msg
End Sub
uj5u.com熱心網友回復:
http://bbs.csdn.net/topics/70017667uj5u.com熱心網友回復:
樓上列舉出來那些都是用陣列實作的。uj5u.com熱心網友回復:
VB木有指標啊. 當然是用陣列方便啦.轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/110948.html
標籤:VB基礎類
上一篇:vb TXT文本內容匯入Access資料庫,資料量比較大
下一篇:chrome無法獲取地址欄
