原创 線段樹(單點操作)

單點操作 //元素 struct node {     int l, r, sum; } tr[maxn<<2]; //節點類型 //建樹 void pushup(int m) { //向上更新     tr[m].sum=tr[m<<

原创 線段樹的區間操作(區間更新,區間查詢)

區間操作 struct node { int l,r,sum,lazy; } tr[maxn<<2]; //節點類型 void pushup(int m) { //某個值的向上更新 tr[m].sum=tr[m<<1].su

原创 矩陣快速冪模板

A爲一個方陣,則Tr A表示A的跡(就是主對角線上各項的和),現要求Tr(A^k)%9973。  Input 數據的第一行是一個T,表示有T組數據。  每組數據的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)兩個

原创 快速冪,二分,三分模板

//快速冪 long long Mood(long long a,long long b) { long long ans=1; a%=Mod; while(b) { if(b&1)//取二進制最後一位 ,如果是一就進行下一

原创 浙大數據結構 單鏈表逆轉

6-8 單鏈表逆轉 (20 分) 本題要求實現一個函數,將給定的單鏈表逆轉。 函數接口定義: List Reverse( List L ); 其中List結構定義如下: typedef struct Node *PtrToNode;

原创 浙大數據結構,頭插建立鏈表

6-7 頭插法創建單鏈表(C) (25 分) 本題要求實現兩個函數,輸入n個數據,採用頭插法創建單鏈表並打印。例如:如果輸入4 ,再輸入3 7 9 5,則應打印輸出5 9 7 3。 鏈表結點結構定義: struct Node {

原创 浙大數據結構,尾插建立鏈表

6-6 尾插法創建單鏈表(C) (25 分) 本題要求實現兩個函數,輸入n個數據,採用尾插法創建單鏈表並打印。例如:如果輸入4 ,再輸入3 7 9 5,則應打印輸出3 7 9 5。 鏈表結點結構定義: struct Node {

原创 數據結構 鏈式表操作集

6-11 鏈式表操作集 (20 分) 本題要求實現鏈式表的操作集。 函數接口定義: Position Find( List L, ElementType X ); List Insert( List L, ElementType X,

原创 浙大數據結構 層序建立二叉鏈表

6-17 層序建立二叉鏈表 (20 分) 本題要求實現一個函數,給定一棵二叉樹的層序序列,創建該樹的二叉鏈表。 函數接口定義: BinTree CreatBinTree(); 函數CreatBinTree從標準輸入讀入一棵二叉樹的層

原创 乙級題 1040 有幾個PAT

1040 有幾個PAT (25 分) 字符串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現

原创 PTA乙級題 1015 德才論

1015 德才論 (25 分) 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考

原创 數據結構 帶頭結點的鏈式表操作集

6-10 帶頭結點的鏈式表操作集 (20 分) 本題要求實現帶頭結點的鏈式表操作集。 函數接口定義: List MakeEmpty(); Position Find( List L, ElementType X ); bool Ins

原创 浙大數據結構 玩轉二叉鏈表

7-20 玩轉二叉鏈表 (20 分) 設計程序,按先序創建二叉樹的二叉鏈表;然後先序、中序、後序遍歷二叉樹。 輸入格式: 按先序輸入一棵二叉樹。二叉樹中每個結點的鍵值用字符表示,字符之間不含空格。注意空樹信息也要提供,以#字符表示空樹。