【0、2、1、4、3、9、5、8、6、7】是以陣列形式儲存的最小堆,刪除堆頂元素0後的結果是()
a.【2、1、4、3、9、5、8、6、7】
b.【1、2、5、4、3、9、8、6、7】
c.【2、3、1、4、7、9、5、8、6】
d.【1、2、5、4、3、9、7、8、6】
正確答案: d
第二, 堆是一種經過排序的完全二叉樹,最小堆:根結點的鍵值是所有堆結點鍵值中最小者。根據這個不難寫出原來堆依次為 頂層0 第二層 2 1 第三層 4 3 9 5 第四層 8 6 7
第三,最小堆刪除堆頂後,用最後乙個元素暫代堆頂,然後變成頂層7 第二層
2 1 第三層 4 3 9 5 第四層 8 6 ,7>2>1,故1和7對調,對調後頂層1 第二層
2 7 第三層 4 3 9 5 第四層 8 6;因為9>7>5,5和7對調 ,對調後
頂層1 第二層
2 5 第三層 4 3 9 7 第四層 8 6;形成新的最小堆
故答案為:d
中綴表示式(a+b)*c*(d-e/f) 轉成字尾
ab+c*def/-*
遇到數字:直接輸出
遇到'(':壓棧
遇到')':持續出棧,如果出棧的符號不是'('則輸出,否則終止出棧。
遇到符號則判斷該符號與棧頂符號的運算優先順序,如果棧頂符號的運算優先順序高,則出棧並輸出,直到優先順序相等或棧為空;如果棧頂符號的運算優先順序低於或等於當前符號的運算優先順序,則將當前符號壓棧。
處理完字串後將棧中剩餘的符號全部輸出。
下列給定程式中,函式fun的功能是:求ss所指字串陣列中長度最短的字串所在的行下標,作為函式值返回,並把其串長放在形參n所指的變數中。ss所指字串數陣列中共有m個字串,且串長小於n。
請在程式的下畫線處填入正確的內容並將下畫線刪除,使程式得出正確的結果。
試題程式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define m
5
#define n
20
int
fun(
char
(* ss)[n],
int
*n)
}
return
( _____ );
}
main( )
;
int
n, k, i;
printf(
"\nthe originalb stringsare:\n"
);
for
(i =
0
; i < m; i++)
puts(ss[i]);
k = fun(ss, &n);
printf(
"\nthe length of shortest string is: % d\n"
, n);
printf(
"\nthe shortest string is: % s\n"
, ss[k]);
}
a.n,< ,k
b.n, >,k
c.m,<,k
d.m,>,k
c若6行5列的陣列以列序為主序順序儲存,基位址為1000,每個元素佔2個儲存單元,則第3行第4列的元素(假定無第0行第0列)的位址是()
a.1040
b.1042
c.1026
d.備選答案a,b,c都不對
a
思路:按列儲存,第一列的基址是:1000,第二列的基址是:1012,第3列是:1024,第4列是:1036,所以第三行第4列為:1036+2+2=1040
這堆疊, 字串陣列與字串指標
今天還在做著小作業,終於把框架大體搭好,準備脫離stl用c語言來解析字串。卻碰到了諸多問題。原來堆疊基本不太懂,現在稍稍知道了,還有字串指標和陣列的區別。哎 簡單的寫了幾個定義和初始化字串的方式 char szname1 dir ad what are you doing q全域性const區域 c...
字串,字串陣列,字串指標!!
字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...
無冗餘輸入字串 字串陣列 字串陣列
問題 輸入乙個數字n,接下來輸入n個字串,要求無冗餘地儲存字串 分析 參考到無冗餘地字串輸入 使用動態分配。本題還參考了這個鏈結的內容 1 include include int main char p int ns,i scanf d ns p char malloc sizeof char fo...