二叉搜尋樹插入:
可以首先要判斷樹是不是為空(針對鍊錶結構是必須的,因為要分配動態記憶體),然後插入。有2種選擇,遞迴和迴圈,因為遞迴是尾部遞迴,犧牲了空間複雜度獲得了可讀性,可以轉換為迴圈。
刪除結點:
分為3種情況:
1、刪除沒有孩子的結點,直接刪除
2、刪除只有乙個孩子的結點,刪除原有結點,指向孩子結點。
3、刪除有2個孩子的結點,刪除左子樹的最大結點,把值放在當前結點。
**實現:
tree.h
#ifndef tree_h
#define tree_h
static const int array_size = 100;
static int tree[array_size];
int left_child(int i);
int right_child(int i);
int find(int i);
void insert(int i);
void delete(int i);
#endif
tree.cpp#include "tree.h"
#include #include #include int left_child(int i)
int right_child(int i)
int find(int i)
tree[current] = i;
}void delete(int i)
else if(tree[right] == 0)
else
tree[index] = tree[pre];
tree[pre] = 0;
}}
test.cpp
#include "tree.h"
#include #include int main()
第十七章經典抽象資料型別(一)
堆疊,沒什麼太多要總結的,主要是實現問題,這裡自己實現了一下,當然從書本中吸取到的是程式 效率的提公升和assert斷言的應用判斷。的提公升在於top element的初值是0和1,對於push,pop本來就要改變的函式來說沒什麼變化,但是對於top這樣的函式,只需要返回其頂部資料,但是每一次都要 ...
第十七章 掌握網格(二)
中的網格 也可以完全用 定義網格,但通常沒有xaml定義的清晰度或有序性。gridcodedemo程式通過再現 griddemo的布局來演示 方法。要指定rowdefinition的高度和columndefinition的寬度,可以使用gridlength結構的值,通常與gridunittype列舉...
MySql的初學習 第十七章 元資料
部落格說明 除了表之外的資料都是元資料,可以分為三類 查詢結果資訊 update 或 delete語句 受影響的記錄數。資料庫和資料表的資訊 包含了資料庫及資料表的結構資訊。mysql伺服器資訊 包含了資料庫伺服器的當前狀態,版本號等。1.檢視伺服器當前狀態 show status 2.檢視mysq...