28 樹與二叉樹的應用

2022-08-22 03:54:16 字數 820 閱讀 7286

1、二叉查詢樹的型別定義 

//二叉查詢樹的型別定義

typedef int datatype; //結點關鍵碼的資料型別

typedef struct node

bstnode, *bstree;

2、二叉查詢樹的相關操作

//二叉查詢樹上的查詢

bstnode * search (bstree root, datatype x,bstnode * & father)

return p;

}//二叉查詢樹的插入

int insert (bstree & root, datatype x)

//二叉查詢樹的刪除

int remove(bstree & root, datatype x)

p->data = s->data;

p = s; //用 *s的值取代 *p的值,再刪 *s

} if(p -> lchild != null) //左子樹非空,記下左子女結點

s = p->lchild; //記下右子女結點

else

s = p->rchild;

if(p == root) //被刪結點為根結點

root = s;

else if(s->data < f->data) //父結點直接鏈結子女結點

f->lchild = s;

else

f->lchild = s;

delete p;

return 1;

}

3、相關演算法

二叉樹 28題 對稱的二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 示例1 輸入 root 1,2,2...

樹與二叉樹的應用 二叉排序樹

1 二叉排序樹的定義 二叉排序樹 簡稱 bst 也稱為 二叉查詢樹 二叉查詢樹或者是一棵空樹,或者是一棵具有下列 特性的非空二叉樹 a.若左子樹非空,則左子樹上所有結點關鍵字值均小於根結點的關鍵字值 b.若右子樹非空,則右子樹上所有結點關鍵子值均大於根結點的關鍵字值 c.左 右子樹本身也分別是一棵二...

二叉樹的應用 二叉樹遍歷的應用

在以上討論的遍歷演算法中,訪問結點的資料域資訊,即操作visite bt data 具有更一般的意義,需根據具體問題,對bt 資料進行不同的操作。下面介紹幾個遍歷操作的典型應用。search bt,x 在bt 為二叉樹的根結點指標的二叉樹中查詢資料元素x。查詢成功時返回該結點的指標 查詢失敗時返回空...