宅男噜噜噜666在线观看,国产1区二区三区,国产日韩欧美大片,国产超碰97,国产自产视频,99久久国产综合精品色伊,亚洲午夜高清

軟題庫 學習課程
試卷年份2009年下半年
試題題型【分析簡答題】
試題內容

閱讀以下說明和C程序,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
現有n(n<1000)節(jié)火車車廂,順序編號為1,2,3,?,n,按編號連續(xù)依次從A方向的鐵軌駛入,從B方向鐵軌駛出,一旦車廂進入車站(Station)就不能再回到A方向的鐵軌上;一旦車廂駛入B方向鐵軌就不能再回到車站,如圖7-1所示,其中Station為棧結構,初始為空且最多能停放1000節(jié)車廂。

下面的C程序判斷能否從B方向駛出預先指定的車廂序列,程序中使用了棧類型STACK,關于?;静僮鞯暮瘮翟驼f明如下:
void InitStack(STACK *s):初始化棧。
void Push (STACK *s,int e):將一個整數壓棧,棧中元素數目增1。 void Pop (STACK *s):棧頂元素出棧,棧中元素數目減1。
int Top (STACK s):返回非空棧的棧頂元素值,棧中元素數目不變。 int IsEmpty (STACK s):若是空棧則返回1,否則返回0。
【C程序】
#include
/*此處為棧類型及其基本操作的定義,省略*/
int main(){
STACK station;
int state[1000];
int n;                                /*車廂數*/
int begin, i, j, maxNo;           /*maxNo為A端正待入棧的車廂編號*/
printf("請輸入車廂數:");
scanf("%d",&n);
printf(“請輸入需要判斷的車廂編號序列(以空格分隔):”);
if(n<1)return-1;
for (i=0; iscanf("%d",&state[i]);
(1) /*初始化棧*/
maxNo=1;
for(i=0; i<n; ){  /*檢查輸出序列中的每個車廂號state[i]是否能從棧中獲取*/
if( (2) ){    /*當棧不為空時*/
if (state[i]=Top(station)) {    /*棧頂車廂號等于被檢查車廂號*/
printf("%d",Top(station));
Pop(&station);i++;

else
if ( (3) ) {
printf(“error\n”);
return 1;

else{
begin= (4)
for(j=begin+l;j <=state [i];j++) {
Push(&station, j);
}


else{   /*當棧為空時*/
begin=maxNo;
for(j=begin; j<=state[i];j++) {
Push(&station, j);

maxNo= (5)


printf("OK");
return 0;

查看答案

相關試題

4題: 閱讀下列說明,回答問題1至問題2,將解答填入答題紙的對應欄內。
【說明】
0-1背包問題可以描述為:有n個物品,對i=1,2,…,n,第i個物品價值為vi ,重量為wi(vi,和wi為非負數),背包容量為W(W為非負數),選擇其中一些物品裝入背包,使裝入背包物品的總價值最大,即,且總重量不超過背包容量,即,其中,xi∈{0,1},xi=0表示第i個物品不放入背包,xi=1表示第i個物品  放入背包。
?【問題1】(8分)
用回溯法求解此0-1背包問題,請?zhí)畛湎旅鎮(zhèn)未a中(1)~(4)處空缺。
回溯法是一種系統(tǒng)的搜索方法。在確定解空間后,回溯法從根結點開始,按照深度優(yōu)先策略遍歷解空間樹,搜索滿足約束條件的解。對每一個當前結點,若擴展該結點己經不滿足約束條件,則不再繼續(xù)擴展。為了進一步提高算法的搜索效率,往往需要設計一個限界函數,判斷并剪枝那些即使擴展了也不能得到最優(yōu)解的結點?,F在假設已經設計了BOUND(v,w,k,W)函數,其中v, w, k和W分別表示當前已經獲得的價值、當前背包的重量、己經確定是否選擇的物品數和背包的總容量。對應于搜索樹中的某個結點,該函數值表示確定了部分物品是否選擇之后,對剩下的物品在滿足約束條件的前提下進行選擇可能獲得的最大價值,若該價值小于等于當前已經得到的最優(yōu)解,則該結點無需再擴展。
下面給出0-1背包問題的回溯算法偽代碼。
函數參數說明如下:
W:背包容量;n:物品個數;w:重量數組;v:價值數組;fw:獲得最大價值時背包的重量;fp:背包獲得的最大價值;X:問題的最優(yōu)解。
變量說明如下:
cw:當前的背包重量;cp:當前獲得的價值;k:當前考慮的物品編號;Y:當前已獲得的部分解。

?【問題2】(7分)
考慮表4-1的實例,假設有3個物品,背包容量為22。圖4-1中是根據上述算法構造的搜索樹,其中結點的編號表示了搜索樹生成的順序,邊上的數字1/0分別表示選擇/不選擇對應物品。除了根結點之外,每個左孩子結點旁邊的上下兩個數字分別表示當前背包的重量和已獲得的價值,右孩子結點旁邊的數字表示擴展了該結點后最多可能獲得的價值。為獲得最優(yōu)解,應該選擇物品 (5) ,獲得的價值為 (6) 。

對于表4-1的實例,若采用窮舉法搜索整個解空間,則搜索樹的結點數為 (7) ,而用了上述回溯法,搜索樹的結點數為 (8) 。
答案解析與討論:www.rydxd.com/st/3808721842.html

5題: 閱讀下列說明和C++代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
現欲構造一文件/目錄樹,采用組合(Composite)設計模式來設計,得到的類圖如5-1所示:


答案解析與討論:www.rydxd.com/st/3808810811.html

6題: 閱讀下列說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
現欲構造一文件/目錄樹,采用組合(Composite)設計模式來設計,得到的類圖如6-1所示:


答案解析與討論:www.rydxd.com/st/38089467.html