原创 二叉樹--二叉搜索樹的實現

搜索環境 靜態環境:搜索結構在執行插入和刪除等操作的前後不發生變化。這種結構操作簡單,效率不高,而且需要處理一出問題。 動態環境:爲了保持較高的搜索效率,搜索結構在執行插入和刪除等操作的前後將自動進行調整,結構可能會發生變化

原创 堆---實現最小堆及堆的插入與刪除

堆 堆在優先級隊列的各種實現中,是最高效的一種數據結構 假定在各個數據記錄(或元素)中存在一個能夠標識數據記錄(或元素)的數據項,並將依據該數據項對數據進行組織,則可數據項成爲關鍵碼(key) 如果有一個關鍵碼的集合K =

原创 MySQL---表的增刪改查

增刪改查是使用數據庫時最常用的操作。 增 insert into 表名 [ ( 字段名 , ( 字段名 ) ) ] value (value , [, value ] ) ; 如果只給表的某幾個

原创 MySQL---如何在window 10和CentOS 7系統下安裝MySQL

Windows 10 安裝準備 下載安裝包 網盤下載MySQL 密碼: qx67 官網下載 檢查操作系統類型 使用快捷鍵win+pause 查看需要安裝32(x86)位還是64位(x64) 檢查系統是否已

原创 棧---逆波蘭表達式(RPN)的計算

表達式 表達式 = 操作數(運算對象) + 操作符(運算符) + 分界符 算數表達式有三種表示:(逆波蘭表達式又稱爲後綴表達式) 中綴表達式(infix):<操作數><操作符><操作數>例如:A+B 前綴表達式(prefix

原创 MySQL---數據庫表的約束

表的約束 真正約束字段的是數據類型,但是數據類型約束很單一,需要有一些額外的約束,更好的保證數據的合法性。 空屬性 兩個值:null(默認值)和 not null(不爲空) 數據庫默認字段基本爲空,但是實際應用是,不建議爲空

原创 二叉樹---前中序數組建立唯一二叉樹

二叉樹的個數 具有n個結點的不同的二叉樹有多少種?這與用棧得出的從1到n的數字有多少種不同的排列具有相同的結論。 那麼,利用給定了一顆二叉樹的前序序列(ABHFDECKG)和中序序列(HBDFAEKCG)能否唯一的確定一顆二叉

原创 七大排序算法---堆排序

堆排序 第一步:根據初始輸入數據,利用堆的調整算法 siftDown() 形成初始堆 第二步:通過元素交換和重新調整堆進行排序。 建堆(大堆) 輕鬆教你建堆→ 上面鏈接是建立小堆的,建立大堆在理解小堆之後,也是能輕鬆寫出來的

原创 圖示講解AVL平衡二叉樹的左旋和右旋

AVLTree 高度平衡的搜索二叉樹 一棵平衡樹,或是空樹,或是具有以下性質的二叉搜索樹:左子樹和右子樹都是AVL樹,且左右子樹的高度之差的絕對值不超過1。 該二叉樹,根結點的右子樹高度爲3,左子樹高度爲2。結點上方的數字

原创 棧和遞歸---斐波那契數列的非遞歸實現

遞歸 求裴波那契數列的第n項Fib(n)的公式爲: f(n) = {n,Fib(n−1)+Fib(n−2),n=0或1n>=2{n,n=0或1Fib(n−1)+Fib(n−2),n>=2 代碼實現 long Fib(l

原创 MySQL---坐下,都是基本操作(創建數據庫和表,修改表)

數據庫介紹 什麼是數據庫 數據庫用於數據保存,相對文件,有以下優點: 數據庫保存數據更爲安全 有利於查詢和對數據的管理 可以存放海量的數據 可以在程序中控制 數據庫:高效的存儲和處理數據的介質(介質主要是兩種:磁盤和內存)

原创 七大排序算法--歸併排序及優化

歸併排序 利用分治法的思想,歸併排序將待排序的元素序列分成兩個長度相等的子序列,爲每個子序列排序,然後再將他們合併成一個序列。 歸併排序不依賴待排序元素的序列的初始排列,這樣就避免了快排的最差情況。 在執行歸併算法時,先將

原创 棧---實現順序棧及簡單的括號匹配問題

棧 通常情況下,棧(Stack)可定義爲只允許在表的末端進行插入和刪除的線性表。允許插入和刪除的一端稱作棧頂(top),不允許插入和刪除的一端稱作棧底(bottom)。當棧中沒有任何元素時則成爲空棧。 棧的分類 棧的抽象數

原创 隊列---簡單實現楊輝三角求二項式的係數值

隊列 隊列是另一種限定存取位置的線性表。它只允許在表的一端插入,在另一端刪除。允許插入的一端叫做隊尾,允許刪除的一端叫做隊頭。 利用數組建立隊列 由上圖對隊列的描述來看,定長的數組很快就會溢出。 但是,這種“溢出”可能是

原创 隊列---鏈式隊列及雙端隊列實現

鏈式隊列 鏈式隊列是基於單鏈表的一種存儲方式。 在單鏈表的每一個節點中有兩個域:data域存放隊列元素的值,link域存放單鏈表下一個結點的地址。隊列的隊頭指針指向單鏈表的第一個結點,隊尾指針指向單鏈表的最後一個結點。 隊列