二叉樹特點是每個結點最多只能有兩棵子樹,且有左右之分 。
tree*
tree_create
(data data)
//初始化
root -> data = data;
root -> left =
null
; root -> right =
null
;return root;
}
二叉樹插入必須滿足節點左邊的值小於節點的值,節點右邊的值大於節點的值。
//插入
else
} tree *pnew =
tree_create
(data)
; tree *p=
*root,
*parent =
null
;while
(p)else}if
(parent -> data < data)
else
return0;
}
tree*
tree_find
(tree *root,data aim)
//查詢
tree *p = root;
while
(p)return
null
;}
tree*
tree_deleate
(tree *root,data aim)
//刪除
else
if(p -> data < aim)
else
if(p -> data == aim)
else
if(q->right==p)
}else
if(p->right==
null
&&p->left!=
null
)else
if(q->right==p)
}else
if(p->right!=
null
&&p->left==
null
)else
if(q->right==p)
}else
if(p->right!=
null
&&p->left!=
null
)puts
("!");
printf
("%d\n"
,p->data)
; q->data=p->data;
if(p->right==
null
)else
}return root;}}
printf
("沒有該資料\n");
return root;
}
void
preorder
(tree *root)
//輸出
//printf("%d ",root -> data);//前序輸出
preorder
(root -> left)
;printf
("%d "
,root -> data)
;//中序輸出可排序
preorder
(root -> right)
;//printf("%d ",root -> data);//後序輸出
}
源**鏈 二叉樹 基礎操作
核心思想 遞迴處理 前序 根左右 中序 左根右 後序 左右根 class node public class testtree system.out.print root.val preorder root.left preorder root.right 中序 public static void...
二叉樹的基礎操作
1 前序遍歷 public static void preorder node root system.out.println root.val preorder root.left preorder root.right 2 中序遍歷 public static void inorder node...
二叉樹的基礎操作
struct bitree 初始化bitree create 若想中序或後序建立,則只需改變函式中 t data a t lchild create t rchild create 這三條語句的順序 先給t data a在先的話是先序,在中間的話是中序,在最後的話是後序。先序的遍歷順序是根節點 左子...