二分法和單調佇列的專題結束了,對於做題情況很不滿意。最近這幾個專題做題的效率都很低,學習起來也有些吃力,總是看的時候感覺懂了,可實際做起題來卻發現還差得遠呢。這兩天在做usaco上的題,感覺剛開始這幾道難度還可以,希望後面不會太難。有一次提交的時候忘記把讀檔案的**注釋掉了,這個老師之前強調過的,還是犯了實在不應該,以後一定要更加小心才行。
接下來總結一下二叉樹bt
性質:
1.在二叉樹的第i層上最多有2^(i-1)個結點(i>=1)
2.深度為k的二叉樹至多有2^k –1個結點(k>=1)注:一棵深度為k且有2k–1個結點的二叉樹稱為滿二叉樹。
3.對任意一棵二叉樹,如果其葉結點數為n0,度為2的結點數為n2,則一定滿足:n0=n2+1。
4.具有n個結點的完全二叉樹的深度為floor(log2n)+1
5.對於一棵n個結點的完全二叉樹,對任乙個結點(編號為i),有:①如果i=1,則結點i為根,無父結點;如果i>1,則其父結點編號為i/2。如果2i>n,則結點i無左孩子(當然也無右孩子,為什麼?即結點i為葉結點);否則左孩子編號為2i。②如果2i+1>n,則結點i無右孩子;否則右孩子編號為2i+1。
二叉樹的儲存結構
鏈式儲存結構,即單鏈表結構或雙鏈表結構(同樹)
typedef struct node;
typedef node *tree;
struct node
; tree bt;
或:typedef struct node;
typedef node *tree;
struct node
; tree bt;
順序儲存結構,即幾個陣列加乙個指標變數
const int n = 10;
char data[n];
char lchild[n];
char rchild[n];
int bt; //根結點指標
先序遍歷的操作:
若二叉樹為空,則空操作,否則
①訪問根結點
②先序遍歷左子樹
③先序遍歷右子樹
void preorder(tree bt) //先序遍歷根結點為bt的二叉樹的遞迴演算法
}
中序遍歷的操作:
若二叉樹為空,則空操作,否則
①中序遍歷左子樹
②訪問根結點
③中序遍歷右子樹
void inorder(tree bt) //中序遍歷根結點為bt的二叉樹的遞迴演算法
}
後序遍歷的操作:
若二叉樹為空,則空操作,否則
①後序遍歷左子樹
②後序遍歷右子樹
③訪問根結點
void postorder(tree bt) //後序遍歷根結點為bt的二叉樹的遞迴演算法
}
建立一棵二叉樹
void pre_crt(tree &bt) //按先序次序輸入二叉樹中結點的值,生成
else bt = null;
}
刪除二叉樹
void dis(tree &bt) //刪除二叉樹
}
插入乙個結點到排序二叉樹中
void insert(tree &bt, int n) //插入乙個結點到排序二叉樹中
else
}
在排序二叉樹中查詢乙個數,找到返回該結點,否則返回null
tree findn(tree bt, int n) //在二叉樹中查詢乙個數,找到返回該結點,否則返回null。
else return null;
}
用巢狀括號表示法輸出二叉樹
void print(tree bt) //用巢狀括號表示法輸出二叉樹
}}
2019 5 15 空格替換
題目 方式一 使用replaceall 語句。將滿足條件的全部替換 public class solution方式二 思路 通過乙個建立乙個新的字串 每當遇見空格則拼接 20 否則則拼接原來的字元 public class solution else return string.valueof ch...
小組會談(2019 5 15)
一 會議主題 1 計畫對初步完成的介面進行優化設計 2 對其他未完成的介面繼續進行設計 3 對下一步的工作進行安排及分工。二 會議地點 逸夫樓一樓 三 會議時間 5月15日16 00 17 00 四 會議內容 1 對之前完成的介面設計進行修改 2 繼續優化功能 3 對後一步的文件編寫以及系統開發進行...
學習後總結,總結後再學習
學習後總結,總結後再學習 2010年畢業以來,讀了幾百本書籍,包括it技術 管理 歷史 營銷 金融 心理等等,在讀某商學院mba一年後感覺有些東西還是要寫寫,除了能增加自己對某些知識和理論的理解外,也許其他人也碰巧想關注一下,了解這方面的東西。我所寫的都是一些簡單的概念層面的解釋,不會做太深入的闡述...