複習記錄,高手無視,關於 二叉搜尋樹的一些基本操作。
//code by pnig0s1992//date:2012,3,28
#include
#include
typedef
intelement_type;
typedef
struct
treenode * ptrtreenode;
typedef
struct
treenode * adttree;
struct
treenode
; void
makeempty(adttree mytree);
//將adt樹置空
ptrtreenode find(element_type x,adttree mytree);
//查詢指定元素的結點並返回
ptrtreenode findmin(adttree mytree);
//查詢adt樹中的最小值
ptrtreenode findmax(adttree mytree);
//查詢adt樹中的最大值
ptrtreenode insert(element_type x,adttree mytree);
//向adt樹中插入結點
ptrtreenode delete(element_type x,adttree mytree);
//adt樹中刪除指定結點
adttree createtree(element_type x);
//構造乙個新adt樹並返回根節點指標
intmain(
intargc,
char
** ar**)
//構建adt樹
adttree createtree(element_type x)
//向adt樹中插入乙個結點
ptrtreenode insert(element_type x,adttree mytree)
else }
else
if(x < mytree->element)
else
if(x > mytree->element)
return
mytree;
} //找到adt樹最小結點
ptrtreenode findmin(adttree mytree)
else
if(mytree->pleftchild == null)
else
} //找到adt樹最大結點
ptrtreenode findmax(adttree mytree)
else
if(mytree->prightchild == null)
else
} //刪除指定adt樹結點
ptrtreenode delete(element_type x,adttree mytree)
else
if(x < mytree->element)
else
if(x > mytree->element)
else
if(mytree->pleftchild && mytree->prightchild)
else
else
if(mytree->prightchild == null)
free(tempcell);
} return
mytree;
} ptrtreenode find(element_type x,adttree mytree)
else
if(x < mytree->element)
else
if(x > mytree->element)
else
return
mytree;
} void
makeempty(adttree mytree)
return
; }
資料結構與演算法 多項式ADT
陣列實現宣告 typedef struct polynomial 初始化為0 void zeropolynomial polynomial poly 相加 void addpolynomial const polynomial poly1,const polynomial poly2,polynom...
資料結構複習 樹
形式化定義 對於樹 t d是包含n個結點的有限集合,當n 0時為空樹,否則關係r滿足以下條件 遞迴定義 樹是由n個結點組成的有限集合,其中 插入或刪除 遍歷二叉樹是有限的節點的集合 同樹完全二叉樹 完全二叉樹的性質 森林 樹轉化為二叉樹 在所有相鄰兄弟節點 森林中每棵樹的根節點可看成是兄弟節點 之間...
資料結構與演算法基本
棧的演算法 計算機內部空間是連續儲存的,但是可以通過邏輯上改變記憶體的物理結構,資料在記憶體上呈現出的是連續分布狀態 主要的典型資料結構 在實現棧這種資料結構時,首先要定義乙個陣列和乙個變數。陣列中所包含的元素個數就是棧的大小 棧中最多能存放多少個資料 變數中則儲存著乙個索引,指向儲存在棧中最頂端的...