二叉樹是一種每個節(jié)點(diǎn)最多有兩個子樹的結(jié)構(gòu)。有一種特殊的二叉樹稱為完全二叉樹,其特點(diǎn)是樹中的結(jié)點(diǎn)按從上至下、從左到右的順序進(jìn)行存儲,每個根節(jié)點(diǎn)連接2個子節(jié)點(diǎn),直至存儲完畢。如圖a為完全二叉樹,而圖b則不是完全二叉樹。
某學(xué)校學(xué)生參加模擬商賽活動,所有參賽隊(duì)員需組成一個模擬公司,該公司組織架構(gòu)是一個完全二叉樹,如圖c所示。為了合理分配每位參賽隊(duì)員在公司組織架構(gòu)中的位置,公司的組成規(guī)則如下:
1)公司的所有成員以能力值確定最終的崗位層次,能力值最高的位于第1層,即任命為董事長,依次向下。
2)每個崗位的下屬能力值不超過自己的上司,如開發(fā)經(jīng)理的能力值不能超過技術(shù)總監(jiān)。
3)兩個不同的類型的同級崗位之間能力值沒有相關(guān)性,即產(chǎn)品經(jīng)理與咨詢師屬于兩個不同類型的同級崗位,沒有相關(guān)性。如圖d所示,數(shù)組a(1)~a(6)依次存儲了圖c中所有崗位對應(yīng)的員工能力值。
若此時有新隊(duì)員進(jìn)入公司組織,在圖d所示的完全二叉樹中再增加一個值為a(10)=7的新元素構(gòu)建新二叉樹的方法如下:
第一步:判斷新節(jié)點(diǎn)位置,a(10)應(yīng)放在節(jié)點(diǎn)a(5)下方;
第二步:因a(10)>a(5),交換a(10)和a(5)的值;a(5)>a(2),再次交換a(2)和a(5)的值第三步:因a(2)<a(1),無需交換,新元素已放入正確位置,構(gòu)建成新二叉樹,上移結(jié)束。
目前對所有隊(duì)員進(jìn)行了三項(xiàng)測試,得到三項(xiàng)成績之和作為能力值,根據(jù)能力值構(gòu)建如上規(guī)則的完全二叉樹,再根據(jù)二叉樹對所有隊(duì)員進(jìn)行崗位匹配。程序運(yùn)行時,讀取所有隊(duì)員三項(xiàng)測試成績保存在變量s中,將每位員工的姓名和各項(xiàng)測試成績得分顯示在list1中,單擊“計(jì)算”按鈕,對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,求出每位員工能力值,并由此構(gòu)造二叉樹,結(jié)果顯示在列表框 List2中,程序運(yùn)行界面如圖e所示。
(1)若在圖d中增加兩個新隊(duì)員,能力值分別為a(10)=8,a(11)=6則隊(duì)員、a(11)=6將被存儲在數(shù)組元素 中。
(2)實(shí)現(xiàn)算法的VB程序如下,請?jiān)诔绦驒M線處填入合適的代碼。
【考點(diǎn)】對象的屬性、方法和事件;二叉樹的基本操作.
【答案】見試題解答內(nèi)容
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/4/23 12:26:7組卷:0引用:1難度:0.9
相似題
-
1.運(yùn)行列表框?qū)ο笳Z句:List1.AddItem=“同學(xué)們好!“,會顯示:同學(xué)們好?。?!--BA-->
發(fā)布:2025/1/2 11:30:1組卷:6引用:6難度:0.9 -
2.小張?jiān)O(shè)計(jì)了一個“加減運(yùn)算練習(xí)”VB程序.界面如下圖所示.單擊“出題”Command1按鈕顯示兩個運(yùn)算數(shù)和運(yùn)算符號,并計(jì)數(shù).在文本框Text1中輸入計(jì)算結(jié)果后單擊“判斷”按鈕Command2,如果計(jì)算結(jié)果正確,則得分加10分,直至完成10題測試.VB程序如下,但加下橫線處代碼有錯,請改正.
Dim n,s As Integer'n為試題計(jì)數(shù)器,s為得分
Dim a,b As Integer'a,b 為兩個運(yùn)算數(shù)
Dim c As String'c為運(yùn)算符:“+“表示加法,“-“表示減法
Private Sub Form_Load( ?。﹏=0:
s=0
End Sub
Private Sub Command1_Click( ?。鲱}按鈕
Randomize
n=n+1
If n<11Then
Label1.Caption=“No:“+Str(n)
a=Int(Rnd*100)'a,b為運(yùn)算數(shù),且要求a不小于b
b=Int(Rnd*100)
If a>bThen t=a:a=b:b=t'(1)
If Rnd>0.5Then c=“+“Else b=“-“'(2)
Label5.Caption=Str(a)+c+Str(b)+“=“
Text1.Text=““
Else
Command1.Caption=“完成測試“
End If
End Sub
Private Sub Command2_Click( ?。袛喟粹o
If c=“+“Then
If a+b=Val(Text1.Text) Then s=s+10
Else
If a+b=Val(Text1.Text)Then s=s+10'(3)
End If
Label3.Caption=“得分:“+Str(s)
End Sub.發(fā)布:2025/1/2 9:30:2組卷:6引用:2難度:0.9 -
3.某智能農(nóng)場啟用了根據(jù)土壤濕度自動控制噴淋裝置進(jìn)行澆水的信息系統(tǒng),每隔一段時間,系統(tǒng)自動檢測土壤濕度,當(dāng)土壤濕度低于某個閾值時將自動澆水。小李為統(tǒng)計(jì)出某段時間內(nèi)(不超過100個時間單位)系統(tǒng)自動控制澆水的次數(shù)和該時間段內(nèi)前后兩次啟動自動澆水系統(tǒng)的最大時間間隔單位,小李進(jìn)行了數(shù)據(jù)分析,他認(rèn)為如果某單位時間的土壤濕度比前一單位時間的土壤濕度高并且本單位時間內(nèi)沒有下雨,則認(rèn)為啟用了澆水系統(tǒng)。由此他編寫了一個VB程序?qū)崿F(xiàn)該功能:在文本框Text1中輸入某段時間內(nèi)的濕度值,在文本框Text2中輸入該段時間內(nèi)對應(yīng)的天氣情況,單擊命令按鈕Command1,在文本框Text3中顯示系統(tǒng)自動澆水次數(shù),Text4中顯示前后兩次自動澆水系統(tǒng)啟用的最大時間間隔單位。
(1)在Private Sub Command1_Click( ?。┲?,Command1、Click分別表示
(2)實(shí)現(xiàn)上述功能的VB程序如下,請?jiān)诋嬀€處填入合適的代碼。
(3)程序中加框處代碼有錯,請改正。發(fā)布:2025/1/2 11:0:1組卷:0引用:1難度:0.3
把好題分享給你的好友吧~~