PTA資料結構與演算法題目集 中文 7 5

2022-04-11 07:21:41 字數 1399 閱讀 2615

7-5 堆中的路徑 (25 分)

將一系列給定數字插入乙個初始為空的小頂堆h。隨後對任意給定的下標i,列印從h[i]到根結點的路徑。

每組測試第1行包含2個正整數n和m(≤),分別是插入元素的個數、以及需要列印的路徑條數。下一行給出區間[-10000, 10000]內的n個要被插入乙個初始為空的小頂堆的整數。最後一行給出m個下標。

對輸入中給出的每個下標i,在一行中輸出從h[i]到根結點的路徑上的資料。數字間以1個空格分隔,行末不得有多餘空格。

5 3

46 23 26 24 10

5 4 3

24 23 10

46 23 10

26 10

題目分析:考查最小堆(優先佇列)的實現 需要注意的是 利用插入操作建立最小(大)堆 和 先把資料讀入完全二叉樹 再調整的方法 可能建成的堆不同 並且他們的時間複雜度也不同(插入操作所需要的時間複雜度為 o(nlogn) 第二種方法的時間複雜度為 線性時間)

1

#define _crt_secure_no_warnings

2 #include3 #include4 #include

56 typedef struct heapstruct*minheap;

7struct

heapstruct8;

1314 minheap creatminheap(int

capacity)

1523

24void insert(minheap h, int

element)

2531

32void

delete(minheap h)

3346 h->elements[parent] =tmp;47}

4849

void precdown(minheap h,int

i)50

63 h->elements[parent] =tmp;64}

6566

void

buildheap(minheap h)

6771

72void print(minheap h,int

i)73

79 printf("

%d", h->elements[0

]);80}81

intmain()

8292

for (int j = 0; j < m; j++)

9399 }

view code

PTA 資料結構與演算法題目集(中文)6 2

6 2 順序表操作集 20 分 本題要求實現順序表的操作集。list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,positio...

PTA 資料結構與演算法題目集(中文)6 5

6 5 鏈式表操作集 20 分 本題要求實現鏈式表的操作集。position find list l,elementtype x list insert list l,elementtype x,position p list delete list l,position p 其中list結構定義如...

PTA資料結構與演算法題目集(中文)7 18

題意 有兩個視窗a,b,題目給出a視窗處理完兩個顧客,b視窗處理完乙個顧客,並且當不同視窗同時處理完2個顧客時,a視窗顧客優先輸出。我們可以給出兩個佇列q1,q2分別表示a,b視窗,編號為奇數的顧客存放到q1中,為偶數的顧客存放到q2中。include include include include...