1.題目
將一系列給定數字插入乙個初始為空的小頂堆2.分析:建立堆有兩種辦法:(1)乙個乙個相繼插入,不斷維護(2)先按照輸入序列建樹,然後再調整h
。隨後對任意給定的下標i
,列印從h[i]
到根結點的路徑。每組測試第1行包含2個正整數n和m(≤1000),分別是插入元素的個數、以及需要列印的路徑條數。下一行給出區間[-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
2.1不斷插入建立樹
#include#include#define maxsize 1003
typedef struct minheap *heap;
struct minheap
;void insert(heap h,int x)
h->data[i]=x;
}heap makeheap(int n)
return h;
//getchar();
}void printheap(heap h,int x)
else
}printf("\n");
}int main()
;heap makeheap(int n)
return h;
//getchar();
}void smallheap(heap h,int root)
h->data[parent]=x;
}void buildheap(heap h)
}void printheap(heap h,int x)
else
}printf("\n");
}int main()
if(x>h->data[parent]) break;//已經找到合適的節點可以替換
else
}h->data[parent]=x;
return maxiterm;
}
C語言堆中的路徑
05 樹7 堆中的路徑 25 point s 將一系列給定數字插入乙個初始為空的小頂堆h。隨後對任意給定的下標i,列印從h i 到根結點的路徑。每組測試第1行包含2個正整數n和m 1000 分別是插入元素的個數 以及需要列印的路徑條數。下一行給出區間 10000,10000 內的n個要被插入乙個初始...
C 程式設計中的路徑
在讀取或者寫入檔案時,需要知道檔案的路徑,這些檔案路徑怎麼設定呢?首先要分清絕對路徑和相對路徑 一般開啟資料夾,顯示的如下 c program files 判斷該檔案存不存在的 directory.exists c program files 其中 是轉義字元,相當於 所以也可以寫成 directo...
C語言 學習路徑
1.資料表現形式 表現形式分常量和變數兩大類。常量細分為整型常量 實型常量 還分十進位制小數形式和指數形式 字元常量 還分普通字元 轉義字元 字串常量 符號常量 除了這兩大類還有常變數 識別符號。整型常量 如1000,324,0,32423,等 實型常量 十進位制 23.43,0.5464,55.6...