1.摘蘋果。樹上有n個蘋果,小明身高160cm,板凳高度40cm。每個蘋果大小不一樣。摘蘋果和搬板凳分別需要消耗1個能量點。假設(shè)小明共有ey個能量點。則如何摘能使小明摘到蘋果的總重量最大。
編寫程序思路:先按蘋果高度(小于等于160,大于160且小于等于200)將數(shù)據(jù)分別存儲在apple_a,apple_b中,并按蘋果重量降序排列。再對兩組數(shù)據(jù)進行比較:若消耗2個能量點的最重蘋果大于消耗1個能量點的最重兩個蘋果之和,則摘下消耗2個能量點的最重蘋果,否則摘下消耗1個能量點的最重蘋果。蘋果的高度與重量存儲在列表apple中,每個元素中的第一個表示高度(cm),第二個表示蘋果重量(g)。如apple=[[100,202],[210,300],[170,400],[110,100],[140,150],[180,340]],ey=5,則摘下的蘋果:[170,400][100,202][180,340]。
請回答下列問題:
(1)若apple=[[200,102],[205,200],[160,400],[150,304],[130,189],[175,104],[188,350]],能量點數(shù)ey=6,則摘到的總重量最大是
g。
(2)定義sort(d)函數(shù),參數(shù)d的每個元素由高度與重量構(gòu)成。函數(shù)功能是按蘋果重量降序排列,函數(shù)返回d。則①處合適的代碼為
。
(3)定義link(d)函數(shù)。函數(shù)功能將列表d創(chuàng)建成鏈表。則②處合適的代碼是
。
(4)實現(xiàn)摘蘋果的主程序如下,請在劃線處填入合適的代碼。