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