字串,陣列,堆,棧

2021-07-14 16:08:59 字數 2795 閱讀 4694

【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 m5

#define n20

intfun(char(* ss)[n],int*n)

}

return( _____ );

}

main( )

;

intn, 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都不對

思路:按列儲存,第一列的基址是: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...