資料結構 用C 實現乙個二叉樹,遞迴方法中序遍歷

2021-09-24 00:15:06 字數 2137 閱讀 6040

1:二叉排序樹,又稱二叉樹。其定義為:二叉排序樹或者空樹,或者是滿足如下性質的二叉樹。

(1)若它的左子樹非空,則左子樹上所有節點的值均小於根節點的值。

(2)若它的右子樹非空,則右子樹上所有節點的值均大於根節點的值。

(3)左、右子樹本身又各是一顆二叉排序樹。

上述性質簡稱二叉排序樹性質(bst性質),故二叉排序樹實際上是滿足bst性質的二叉樹。

2:**如下:

#include "stdafx.h"

#include#include #include using namespace std;

//定義節點類

class node

; node(int num) :data(num), parent(null), left(null), right(null) {};

};//二叉排序樹類定義

class tree

;//插入num陣列的前len個資料

tree::tree(int num, int len)

}//插入資料為引數data的節點,非遞迴方法

void tree::insertnode1(int data)//插入節點

}newnode->parent = par;

if (par->data > newnode->data)//把新節點插入在目標節點的正確位置

par->left = newnode;

else

par->right = newnode;

}//插入資料為引數data的節點,呼叫遞迴插入方法

void tree::insertnode(int data)

}//遞迴插入方法

void tree::insertnode(node * current, int data)

else

insertnode(current->left, data);//否則對左節點進行遞迴呼叫

}//如果data大於當前節點資料,則在當前節點的右子樹插入

else if (data > current->data)

else

insertnode(current->right, data);//否則對右節點進行遞迴呼叫

}return;//data等於當前節點資料時,不插入

}//遞迴查詢方法

node *tree::searchnode(node* current, int data)

//如果data大於當前節點資料,則遞迴搜尋右子樹

else if (data > current->data)

//如果相等,則返回current

return current;

}//刪除資料為data的節點及其子樹

void tree::deletenode(int data)

}//刪除current節點及其子樹的所有節點

void tree::deletenode(node *current)

if (current->right != null)//刪除右子樹

if (current->parent == null)//如果current是根節點,把root置空

//將current父親節點的相應指標置空

if (current->parent->data > current->data)//current為其父節點的左子節點

current->parent->left = null;

else//current為parnode的右子節點

current->parent->right = null;

//最後刪除此節點

delete current;

}//中序遍歷,遞迴方法

void tree::inordertree()

//用於中序遍歷

void tree::inordertree(node* current)

}int main()

{ node m_node(1);

cout << "節點類的資料為:"

收藏

資料結構 遞迴實現二叉樹

二叉樹 在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用於實現二叉查詢樹和二叉堆。二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至...

資料結構C 實現 二叉樹

adt btree btnode const t x btnode const t x,btnode l,btnode r 三個資料成員 t element btnode lchild,rchild 二叉樹類包含唯一的資料成員,它是指向乙個二叉鍊錶根結點的指標root 二叉樹類 先建立二叉樹結點類 ...

資料結構 二叉樹練習 遞迴

以孩子兄弟鏈作為樹的儲存結構,編寫乙個求樹高度的遞迴演算法。遞迴模型 設f t 為樹t的高度 f t 0 若t null f t 1 若t沒有孩子節點 f t max f p 1 其他情況 p為t的孩子 int treeheight tsbnode t return max 1 二叉樹應用練習 假設...