七、求eular回路

上传人:j****9 文档编号:46998898 上传时间:2018-06-29 格式:DOC 页数:9 大小:80.50KB
返回 下载 相关 举报
七、求eular回路_第1页
第1页 / 共9页
七、求eular回路_第2页
第2页 / 共9页
七、求eular回路_第3页
第3页 / 共9页
七、求eular回路_第4页
第4页 / 共9页
七、求eular回路_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《七、求eular回路》由会员分享,可在线阅读,更多相关《七、求eular回路(9页珍藏版)》请在金锄头文库上搜索。

1、求求 Eular 回路回路(1) 功能功能在 n 个顶点的图 G 中,一条 Eular 回路是一顶点序列 v1,v2,vn 其中, 每个顶点 vi 由一条边连到 vi+1(i=1,2,n-1) ,而 vn 被连到 v1。(2) 调用方式调用方式先输入顶点个数(39) ,点“确定”后将出现顶点图示,再将每条有向边按起始点、 终点输入。每输入一条边起、终点后,按“输入”确认,就可在图形中显示该边。当所有 边输入完毕后,按“完成”键,将计算所有的 Eular 回路。然后点击下方的“下一个”或 “上一个”按钮将在图上用有色线段依次表示出每一个 Eular 回路。(3) 算法说明算法说明一步一步的构造

2、Eular 回路,并且在每一步都进行测试,看看局部构造的向量是否有可 能扩充为一个 Eular 回路,若不能就立即删除它并转到下一步。 Sub step2()nc = stack(m)m = m - 1If nc 0 Thenstep2Elseindex = FalseEnd IfEnd IfEnd Sub Sub step3()A(k) = stack(m)stack(m) = nc - 1If k 2 ThenIf ep(2, A(k - 1) = z1(k - 2) Thenz1(k - 1) = ep(1, A(k - 1)Elsez1(k - 1) = ep(2, A(k - 1)E

3、nd IfEnd IfFor j = 1 To ned(j) = FalseNext jFor j = 1 To nIf z1(k - 1) = ep(1, j) Or z1(k - 1) = ep(2, j) Thened(j) = TrueEnd IfNext jFor j = 1 To k - 1ed(A(j) = FalseNext jEnd If End Function(4) 程序清单程序清单Dim ans As String Dim PI As Double Dim stack(37), ep(3, 37), st(999, 37), A(37), z1(10), x(10),

4、y(10), d(37) As Integer Dim h, nc, i, j, c, b, e, k, m, n, p, q As Integer Dim linei As Integer Dim ed(37), index As Boolean Sub step1()index = Truez1(1) = ep(2, 1)stack(1) = 1stack(2) = 1m = 2step2End Sub Sub step2()nc = stack(m)m = m - 1If nc 0 Thenstep2Elseindex = FalseEnd IfEnd IfEnd SubSub step

5、3()A(k) = stack(m)stack(m) = nc - 1If k 2 ThenIf ep(2, A(k - 1) = z1(k - 2) Thenz1(k - 1) = ep(1, A(k - 1)Elsez1(k - 1) = ep(2, A(k - 1)End IfEnd IfFor j = 1 To ned(j) = FalseNext jFor j = 1 To nIf z1(k - 1) = ep(1, j) Or z1(k - 1) = ep(2, j) Thened(j) = TrueEnd IfNext jFor j = 1 To k - 1ed(A(j) = F

6、alseNext jEnd If End Function Private Sub Command1_Click()c = 0If Not IsNumeric(Text1.Text) Or Not IsNumeric(Text2.Text) Then 输入边 的信息c = MsgBox(“顶点必须为数字,请从新输入“, 0)Text1.Text = “Text2.Text = “Exit SubElsei = Int(Text1.Text)j = Int(Text2.Text)End IfIf i p Or j p Then 判断顶点 合法c = MsgBox(“顶点有误,请从新输入“, 0)

7、Text1.Text = “Text2.Text = “End IfFor h = 0 To nIf (i = ep(1, h) And j = ep(2, h) Or (j = ep(1, h) And i = ep(2, h) Thenc = MsgBox(“该边已经添加,请输入下一条边:“, 0)Text1.Text = “Text2.Text = “End IfNext hIf c = 0 Then 画边n = n + 1ep(1, n) = iep(2, n) = jLine (x(i), y(i)-(x(j), y(j), QBColor(0)Text1.Text = “Text2

8、.Text = “End If End SubPrivate Sub Command2_Click()q = 0index = Truek = 1z1(1) = ep(2, 1)stack(1) = 1stack(2) = 1m = 2While indexstep2If index = True Thenq = q + 1For i = 1 To nst(q, i) = A(i)Next iEnd IfWendCommand1.Enabled = FalseCommand3.Enabled = FalseLabel3.Caption = “共有“ & q & “个 Eular 回路“Comm

9、and4.Visible = TrueCommand5.Visible = TrueIf n - 1 0 ThenCommand4.Enabled = TrueEnd Ifh = 0 End Sub Private Sub Command3_Click()c = 0If Not IsNumeric(Text3.Text) Then 输入顶点个数c = MsgBox(“请输入 3-9 的整数“, 0)Text1.Text = “Elsep = Int(Text3.Text)If p 9 Thenc = MsgBox(“顶点个数有误,请从新输入“, 0)Text3.Text = “End IfEn

10、d IfIf c = 0 Then 依据顶点 个数画图Dim ra As IntegerScaleTop = -1100ScaleLeft = -700ScaleHeight = 2000ScaleWidth = 2000For i = 1 To pFillColor = QBColor(0)FillStyle = 0x(i) = Cos(2 * PI * (i - 1) / p) * 500y(i) = Sin(2 * PI * (i - 1) / p) * 500Circle (x(i), y(i), 7, QBColor(0)CurrentX = x(i) * 1.2CurrentY =

11、 y(i) * 1.2Print iNext iCommand1.Enabled = TrueCommand2.Enabled = TrueEnd IfEnd Sub Private Sub Command4_Click()h = h + 1Timer1.Enabled = FalseIf h 1 ThenCommand5.Enabled = TrueEnd IfFor i = 1 To nMe.DrawWidth = 2Line (x(ep(1, i), y(ep(1, i)-(x(ep(2, i), y(ep(2, i), BackColorMe.DrawWidth = 1Line (x(

12、ep(1, i), y(ep(1, i)-(x(ep(2, i), y(ep(2, i), QBColor(0)Next iFor i = 1 To nd(i) = st(h, i)Next iTimer1.Enabled = TrueLabel3.Caption = “现在是第“ & h & “/“ & q & “个 Eular 回路“If h = q ThenCommand4.Enabled = FalseEnd If End SubPrivate Sub Command5_Click()h = h - 1Timer1.Enabled = FalseIf h n ThenTimer1.Enabled = Falselinei = 1c = MsgBox(“over“, 0)End IfEnd Sub(5) 实例实例1、输入顶点个数:5 2、依次输入各边:12、23、13、14、15、54、 。 3、点“完成”后,生成 Eular 回路,用“下一个”或“上一个”按钮进行选择。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号