二叉樹的基礎操作實現

2021-10-13 23:15:49 字數 1917 閱讀 8817

二叉樹特點是每個結點最多只能有兩棵子樹,且有左右之分 。

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在先的話是先序,在中間的話是中序,在最後的話是後序。先序的遍歷順序是根節點 左子...