真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

avl樹java代碼 java avg

怎么做?。╦ava)

你可以把自己遇到的問題寫出來,知道的網(wǎng)友就會幫你解答了,另外你還需要多學習一些Java的知識,這樣才不至于解決不了問題。這里給你學習Java編程語言的一些小建議:

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),原州企業(yè)網(wǎng)站建設(shè),原州品牌網(wǎng)站建設(shè),網(wǎng)站定制,原州網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,原州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1、多買幾本Java的書籍,不要看電子書。

2、對Java基礎(chǔ)數(shù)據(jù)類型有一個了解。

3、學會各種類型的操作方法。

4、了解函數(shù)和類的概念。

5、動手實踐,找小項目練習。

6、零基礎(chǔ)的同學在扣丁學堂看一些Java視頻教程學習一下。

學習Java的關(guān)鍵是看你自己的學習能力和毅力,只要堅持就會有收貨的。

java(算法與數(shù)據(jù)結(jié)構(gòu))tree

代碼實現(xiàn)[一]部分

package ChapterEight;

class Tree {

class Node {

public long value;

public Node leftChild;

public Node rightChild;

public Node(long value) {

this.value = value;

leftChild = null;

rightChild = null;

}

}

public Node root;

public Tree() {

root = null;

}

// 向樹中插入一個節(jié)點

public void insert(long value) {

Node newNode = new Node(value);

// 樹是空的

if (root == null)

root = newNode;

else {

Node current = root;

Node parentNode;

while (true) {

parentNode = current;

if (value current.value) {

current = current.leftChild;

// 要插入的節(jié)點為左孩子節(jié)點

if (current == null) {

parentNode.leftChild = newNode;

return;

}

} else {

// 要插入的節(jié)點為右孩子節(jié)點

current = current.rightChild;

if (current == null) {

parentNode.rightChild = newNode;

return;

}

}

}

}

}

// 先續(xù)遍歷樹中的所有節(jié)點

public void preOrder(Node currentRoot) {

if (currentRoot != null) {

System.out.print(currentRoot.value + " ");

preOrder(currentRoot.leftChild);

preOrder(currentRoot.rightChild);

}

}

// 中續(xù)遍歷樹中的所有節(jié)點

public void inOrder(Node currentNode) {

if (currentNode != null) {

inOrder(currentNode.leftChild);

System.out.print(currentNode.value + " ");

inOrder(currentNode.rightChild);

}

}

// 后續(xù)遍歷樹中的所有節(jié)點

public void postOrder(Node currentNode) {

if (currentNode != null) {

postOrder(currentNode.leftChild);

postOrder(currentNode.rightChild);

System.out.print(currentNode.value + " ");

}

}

public void traverse(int traverseType) {

switch (traverseType) {

case 1:

preOrder(root);

break;

case 2:

inOrder(root);

break;

case 3:

postOrder(root);

break;

default:

break;

}

// 依據(jù)樹節(jié)點的值刪除樹中的一個節(jié)點

public boolean delete(int value) {

// 遍歷樹過程中的當前節(jié)點

Node current = root;

// 要刪除節(jié)點的父節(jié)點

Node parent = root;

// 記錄樹的節(jié)點為左孩子節(jié)點或右孩子節(jié)點

boolean isLeftChild = true;

while (current.value != value) {

parent = current;

// 要刪除的節(jié)點在當前節(jié)點的左子樹里

if (value current.value) {

isLeftChild = true;

current = current.leftChild;

}

// 要刪除的節(jié)點在當前節(jié)點的右子樹里

else {

isLeftChild = false;

current = current.rightChild;

}

// 在樹中沒有找到要刪除的節(jié)點

if (current == null)

return false;

}

// 要刪除的節(jié)點為葉子節(jié)點

if (current.leftChild == null current.rightChild == null) {

// 要刪除的節(jié)點為根節(jié)點

if (current == root)

root = null;

// 要刪除的節(jié)點為左孩子節(jié)點

else if (isLeftChild)

parent.leftChild = null;

// 要刪除的節(jié)點為右孩子節(jié)點

else

parent.rightChild = null;

}

// 要刪除的節(jié)點有左孩子節(jié)點,沒有右孩子節(jié)點

else if (current.rightChild == null) {

// 要刪除的節(jié)點為根節(jié)點

if (current == null)

root = current.leftChild;

// 要刪除的節(jié)點為左孩子節(jié)點

else if (isLeftChild)

parent.leftChild = current.leftChild;

// 要刪除的節(jié)點為右孩子節(jié)點

else

parent.rightChild = current.leftChild;

}

// 要刪除的節(jié)點沒有左孩子節(jié)點,有右孩子節(jié)點

else if (current.leftChild == null) {

// 要刪除的節(jié)點為根節(jié)點

if (current == root)

root = root.rightChild;

// 要刪除的節(jié)點為左孩子節(jié)點

else if (isLeftChild)

parent.leftChild = current.rightChild;

// 要刪除的節(jié)點為右孩子節(jié)點

else

parent.rightChild = current.rightChild;

}

// 要刪除的接節(jié)點既有左孩子節(jié)點又有右孩子節(jié)點

else {

Node successor = getSuccessor(current);

// 要刪除的節(jié)點為根節(jié)點

if (current == root)

root = successor;

// 要刪除的節(jié)點為左孩子節(jié)點

else if (isLeftChild)

parent.leftChild = successor;

// 要刪除的節(jié)點為右孩子節(jié)點

else

parent.rightChild = successor;

}

return true;

}

// 找到要刪除節(jié)點的替補節(jié)點

private Node getSuccessor(Node delNode) {

// 替補節(jié)點的父節(jié)點

Node successorParent = delNode;

// 刪除節(jié)點的替補節(jié)點

Node successor = delNode;

Node current = delNode.rightChild;

while (current != null) {

// successorParent指向當前節(jié)點的上一個節(jié)點

successorParent = successor;

// successor變?yōu)楫斍肮?jié)點

successor = current;

current = current.leftChild;

}

// 替補節(jié)點的右孩子節(jié)點不為空

if (successor != delNode.rightChild) {

successorParent.leftChild = successor.rightChild;

successor.rightChild = delNode.rightChild;

}

return successor;

}

}

public class TreeApp {

public static void main(String[] args) {

Tree tree = new Tree();

tree.insert(8);

tree.insert(50);

tree.insert(45);

tree.insert(21);

tree.insert(32);

tree.insert(18);

tree.insert(37);

tree.insert(64);

tree.insert(88);

tree.insert(5);

tree.insert(4);

tree.insert(7);

System.out.print("PreOrder : ");

tree.traverse(1);

System.out.println();

System.out.print("InOrder : ");

tree.traverse(2);

System.out.println();

System.out.print("PostOrder : ");

tree.traverse(3);

System.out.println();

System.out.println(tree.delete(7));

System.out.print("PreOrder : ");

tree.traverse(1);

System.out.println();

System.out.print("InOrder : ");

tree.traverse(2);

System.out.println();

System.out.print("PostOrder : ");

tree.traverse(3);

System.out.println();

}

}

跪求平衡二叉樹pascal代碼。怎么辦?

"AVL樹插入算法的基本步驟如下:

①在尋找新結(jié)點的插入位置的過程中,記下離該位置近來、且平衡因子不等于零的結(jié)點a(此結(jié)點即為可能出現(xiàn)的最小失衡子樹的根);

②修改自該結(jié)點至插入位置路徑上全部結(jié)點的平衡因子(注意:樹上其它結(jié)點的平衡因子均不受插入的影響);

③判別實施插入操作之后,結(jié)點a的平衡因子的絕對值是不是大于1(即判別是不是失衡)。若是,進一步判別失衡類型并做相應(yīng)調(diào)整;否則插入過程結(jié)束。

仍以二叉鏈表作為AVL樹的存儲結(jié)構(gòu)。但每一個結(jié)點需增加1個域用于存儲平衡因

子。類型定義如下:

type

avlpt=^anode;

anode=record

key:keytype;

bf:-1..1;

lchild,rchild:avlpt;

...

end;

在此存儲結(jié)構(gòu)上,AVL樹的插入算法如下:

procedure

insert_avltree(K:keytype;var

t:avlpt);

//在以T為根指針的AVL樹上插入鍵值等于K的新結(jié)點//

begin

new(s);s^.key:=K;s^.lchild:=nil;s^.lchild:=nil;//生成以K為鍵值的新結(jié)點//

if

t=nil

then

t:=s

//將新結(jié)點作為根結(jié)點插入空樹//

else

begin

//4-10行:查找S^的插入位置,并記錄a//

f:=nil;a:=t;p:=t;q:=nil;

while

pnil

do

[

if

p^.bf0

then

[a:=p;f:=p];

//a記錄bf0的結(jié)點,其終值指向離插入位置近來的bf0的結(jié)點//

q:=p;

//s^將插到q^上//

if

s^.keyp^.key

then

p:=p^.lchild

else

p:=p^.rchild

];

if

s^.keyq^.key

then

q^.lchild:=s

else

q^.rchild:=s;

//插入s^//

if

s^.keya^.key

then

[

p:=a^.lchild;b:=p;

d:=1

]

//s^插在a^的左子樹上,增量D為1//

else

[

p:=a^.rchild;b:=p;d:=-1

];//s^插在A^的右子樹上,增量D為-1//

while

ps

do

//修改自a^的孩子至S^路徑上各結(jié)點的平衡因子//

if

s^.keyp^.key

//若S^在p^的左子樹上//

then

[

p^.bf:=1;p:=p^.lchild

]

//p^的平衡因子加工1—原來為O,由于p^是a^的子孫//

else

[p^.bf:=-1;p:=p^.lchild];

//p^的平衡因子減1—原來為0//

case

//判別是不是失衡//

a^.bf=0:

a^.bf:=d;

//找插入位置過程中未遇到bf0的結(jié)點,A指根樹//

a^.bf+d=0:

a^.bf:=0

//插入不導(dǎo)致以a^為根的子樹失衡//

else

//其它情形均失衡。差別失衡類型并調(diào)整//

[

if

d=1

then

case

b^.bf=1:LL-rotation;//LL型調(diào)整//

b^.bf=-1:LR-rotation//LR型調(diào)整,結(jié)束時令B指新子樹的根//

end;

else

case

b^.bf=-1:RR-rotation;

b^.bf=1:RL-rotation

//結(jié)束時令b指新子樹的根//

end;

case

//將新子樹鏈接到原a^的雙親f^上//

f=nil:t:=b;//原a^為樹根//

f^.lchild=a:f^.lchild:=b;

f^.rchild=a:f^.rchild:=b

end

]

end

end;

二叉排序樹(包括AVL樹)適合于組織較小的、內(nèi)存中能容納的查找表。若查找表大得必須存放在外部存儲器上,再用二叉排序樹來表示就不合適了。對外存文件的組織來說,需考慮采用其他的數(shù)據(jù)結(jié)構(gòu)(如B樹和B+樹)。"

數(shù)據(jù)結(jié)構(gòu)中樹的問題

通用有序平衡二叉樹接口描述

這套代碼對用戶屏蔽了復(fù)雜的二叉樹的旋轉(zhuǎn)操作,不區(qū)分用戶的數(shù)據(jù)類型,任何數(shù)

據(jù)都可以用有序平衡二叉樹來存放。我還對平衡二叉樹進行了一點點擴展,在樹結(jié)構(gòu)里

面增加了保持線行遞增(或遞減)順序的雙向鏈表,方便使用者能夠快速按序遍歷所有

樹節(jié)點。

這套代碼需要用戶直接參與的部分都用注冊函數(shù)來實現(xiàn),讓使用者完全不需要了解

有序平衡二叉樹的添加、刪除或查找的過程,能夠做到傻瓜式的使用。至于性能,我添

加過300萬個樹節(jié)點之后,樹高只有22層,查找任意一個節(jié)點最多只需要22次匹配操作。

比HASH表快了很多。

這套代碼還針對vxworks操作系統(tǒng)做了一點點擴展,其實就是判斷一下當前操作系統(tǒng)

是否是vxworks,如果是的話就創(chuàng)建一個二進制信號量,如果不是就什么信號量也不創(chuàng)建。

目前此版本提供了如下通用接口:

1、數(shù)據(jù)結(jié)構(gòu)定義

1.1、樹的結(jié)構(gòu)定義

typedef struct _AVL_TREE_HEADER

{

TREE_NODE *pTreeHeader;

#ifdef ORDER_LIST_WANTED

TREE_NODE *pListHeader;

TREE_NODE *pListTail;

#endif

unsigned int count; /*AVL樹里的節(jié)點總數(shù)*/

int (*keyCompare)(TREE_NODE * , TREE_NODE *);

int (*free)(TREE_NODE *);

#if OS==3||OS==4 /*#if OS == VXWORKS || OS == VXWORKS_M*/

SEM_ID sem;

#endif

} tAVLTree;

1.2、樹節(jié)點的結(jié)構(gòu)定義

typedef struct _AVL_TREE_NODE

{

#ifdef ORDER_LIST_WANTED

struct _AVL_TREE_NODE *prev;

struct _AVL_TREE_NODE *next;

#endif

struct _AVL_TREE_NODE *tree_root;

struct _AVL_TREE_NODE *left_child;

struct _AVL_TREE_NODE *right_child;

int bf; /*平衡因子;當平衡因子的絕對值大于或等于2的時候就表示樹不平衡(balance_factor)*/

}TREE_NODE;

2、通用函數(shù)接口定義

2.1、avlTreeCreate

函數(shù)原型:tAVLTree *avlTreeCreate(int *keyCompareFunc,int *freeFunc)

參數(shù)描述:keyCompareFunc - 節(jié)點大小比較函數(shù)的指針,此函數(shù)需要用戶自己提供,

比較函數(shù)的返回值應(yīng)該是-1、0、1,(*keyCompareFunc)函數(shù)有兩個參數(shù),

分別是兩個樹節(jié)點,如果第二個參數(shù)所指向的樹節(jié)點的值比第一個的小,

那么比較函數(shù)就應(yīng)該返回-1,如果相等就是返回0,否則就是1。具體的比

較規(guī)則由用戶根據(jù)所存儲的數(shù)據(jù)里面的關(guān)鍵字來指定(當然,關(guān)鍵字有可

能有多個)。

freeFunc - (*freeFunc)只有一個參數(shù),就是需要釋放內(nèi)存的節(jié)點的指

針,填寫這個注冊函數(shù)的目的是為了實現(xiàn)avlTreeDestroy和avlTreeFlush

這兩個函數(shù)。

返回值 :成功 - 返回指向一個樹的指針

失敗 - NULL

函數(shù)描述:創(chuàng)建一棵空的平衡二叉樹,如果是vxworks操作系統(tǒng)的話還創(chuàng)建一個跟樹

相關(guān)的一個二進制信號量。初始化所有指針為空指針。

2.2、avlTreeDestroy

函數(shù)原型:int avlTreeDestroy(tAVLTree *pTree)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 1

失敗 - 0

函數(shù)描述:摧毀一顆平衡二叉樹,釋放所有樹節(jié)點的內(nèi)存,并且釋放信號量(如果是

vxworks操作系統(tǒng)的話),釋放pTree所指向的二叉樹所占用的內(nèi)存。

2.3、avlTreeFlush

函數(shù)原型:int avlTreeFlush(tAVLTree *pTree)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 1

失敗 - 0

函數(shù)描述:清空一顆平衡二叉樹,釋放所有樹節(jié)點的內(nèi)存,但是并不刪除平衡二叉樹

2.4、avlTreeAdd

函數(shù)原型:int avlTreeAdd(tAVLTree *pTree , TREE_NODE *pInsertNode)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

pInsertNode - 待插入的節(jié)點的指針

返回值 :成功 - 1

失敗 - 0

函數(shù)描述:往平衡二叉樹中添加一個成員節(jié)點

2.5、avlTreeDel

函數(shù)原型:int avlTreeAdd(tAVLTree *pTree , TREE_NODE *pDelNode)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

pDelNode - 待插入的節(jié)點的指針

返回值 :成功 - 1

失敗 - 0

函數(shù)描述:從平衡二叉樹中刪除一個樹節(jié)點

2.6、avlTreeFind

函數(shù)原型:TREE_NODE *avlTreeFind(tAVLTree *pTree,TREE_NODE *pKeyNode)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

pKeyNode - 待查找的節(jié)點的關(guān)鍵字

返回值 :成功 - 查找到的節(jié)點指針

失敗 - NULL

函數(shù)描述:查找一個節(jié)點

2.7、avlTreeCount

函數(shù)原型:int avlTreeCount(tAVLTree *pTree)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 當前平衡二叉樹里的節(jié)點總數(shù)

失敗 - 0

函數(shù)描述:獲取當前樹里面的所有成員節(jié)點總數(shù)

2.8、avlTreeFirst

函數(shù)原型:TREE_NODE *avlTreeFirst(tAVLTree *pTree)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 當前平衡二叉樹里面的最小的成員節(jié)點的指針

失敗 - NULL,只有樹是空的時候才會返回NULL

函數(shù)描述:獲取當前平衡二叉樹里面第一個成員節(jié)點,即最小的成員節(jié)點

2.9、avlTreeLast

函數(shù)原型:TREE_NODE *avlTreeLast(tAVLTree *pTree)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 當前平衡二叉樹里面的最大的成員節(jié)點的指針

失敗 - NULL,只有樹是空的時候才會返回NULL

函數(shù)描述:獲取當前平衡二叉樹里面最后一個成員節(jié)點,即最大的成員節(jié)點

2.10、avlTreeNext

函數(shù)原型:TREE_NODE *avlTreeNext(TREE_NODE *pNode)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 下一個成員節(jié)點的指針

失敗 - NULL

函數(shù)描述:獲取當前節(jié)點的下一個節(jié)點

2.11、avlTreePrev

函數(shù)原型:TREE_NODE *avlTreePrev(TREE_NODE *pNode)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :成功 - 前一個成員節(jié)點的指針

失敗 - NULL

函數(shù)描述:獲取當前節(jié)點的前一個節(jié)點

2.12、AVL_TREE_LOCK

函數(shù)原型:void AVL_TREE_LOCK(tAVLTree *pTree,int timeout)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

timeout - 等待時間

返回值 :N/A

函數(shù)描述:此函數(shù)只有是vxworks系統(tǒng)才有效,目的是對樹進行互斥操作,防止

多任務(wù)同時操作鏈表。

2.13、AVL_TREE_UNLOCK

函數(shù)原型:void AVL_TREE_UNLOCK(tAVLTree *pTree)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

返回值 :N/A

函數(shù)描述:此函數(shù)只有是vxworks系統(tǒng)才有效,目的是對樹進行解除互斥操作

2.13、AVL_TREENODE_FREE

函數(shù)原型:void AVL_TREENODE_FREE(tAVLTree *pTree,TREE_NODE *pNode)

參數(shù)描述:pTree - 指向一棵平衡二叉樹的指針

pNode - 需要釋放的節(jié)點的指針

返回值 :N/A

函數(shù)描述:此函數(shù)釋放內(nèi)存的過程采用的是注冊的釋放函數(shù),釋放不僅僅

只有free函數(shù),對于一些復(fù)雜的結(jié)構(gòu)設(shè)計,可能需要釋放多個

不同的內(nèi)存。

3、應(yīng)用舉例

typedef struct _testStruct{

TREE_NODE node; /*樹節(jié)點的結(jié)構(gòu)一定要放在用戶自定義結(jié)構(gòu)的最前面,注意!*/

int keyA; /*關(guān)鍵字A*/

int keyB; /*關(guān)鍵字B*/

int keyC; /*關(guān)鍵字C,比方說此結(jié)構(gòu)有3個關(guān)鍵字*/

int userData[200]; /*用戶的實際數(shù)據(jù)區(qū)*/

}tTestStruct;

int keyCompareFunc(TREE_NODE *p , TREE_NODE *p1)

{

tTestStruct *T1=NULL,*T2=NULL;

T1=(tTestStruct *)p;

T2=(tTestStruct *)p1;

if(T1-keyA T2-keyA) return 1;

if(T1-keyA T2-keyA) return -1;

if(T1-keyB T2-keyB) return 1;

if(T1-keyB T2-keyB) return -1;

if(T1-keyC T2-keyC) return 1;

if(T1-keyC T2-keyC) return -1;

return 0;

}

int freeFunc(TREE_NODE *pNode)

{

free((void *)pNode);

return 1;

}

tAVLTree *pTree = NULL;

int main()

{

tTestStruct *pTest = NULL;

tTestStruct key;

int count = 0;

pTree = (tAVLTree *)avlTreeCreate

(

(void*)keyCompareFunc ,

(void *)freeFunc

);

if(!pTree)

{

printf("\r\n 創(chuàng)建平衡二叉樹失敗");

return 0;

}

/*添加一個節(jié)點*/

pTest = (tTestStruct *)malloc(sizeof(tTestStruct));

if(!pTest)

{

printf("\r\n 創(chuàng)建樹節(jié)點失敗");

return 0;

}

pTest-keyA = 1;

pTest-keyB = 2;

pTest-keyC = 3;

if(!avlTreeAdd(pTree , (TREE_NODE *)pTest))

{

printf("\r\n 已經(jīng)存在相同節(jié)點,添加失敗!關(guān)鍵字完全匹配就表示節(jié)點完全相同");

return 1;

}

/*再添加一個節(jié)點*/

pTest = (tTestStruct *)malloc(sizeof(tTestStruct));

if(!pTest)

{

printf("\r\n 創(chuàng)建樹節(jié)點又失敗");

return 0;

}

pTest-keyA = 1;

pTest-keyB = 1;

pTest-keyC = 3; /*第二次添加的節(jié)點的關(guān)鍵字比較大家可以算一算*/

if(!avlTreeAdd(pTree , (TREE_NODE *)pTest))

{

printf("\r\n 已經(jīng)存在相同節(jié)點,添加失敗!關(guān)鍵字完全匹配就表示節(jié)點完全相同");

return 1;

}

/*遍歷有序平衡二叉樹 -- 從小到大*/

pTest = (tTestStruct *)avlTreeFirst(pTree);

while(pTest)

{

/**************************

*這里你想干嘛干嘛

*處理pTest-userData?

***************************/

pTest = (tTestStruct *)avlTreeNext(pTree);

}

/*遍歷有序平衡二叉樹 -- 從大到小*/

pTest = (tTestStruct *)avlTreeLast(pTree);

while(pTest)

{

/**************************

*這里你想干嘛干嘛

*處理pTest-userData?

***************************/

pTest = (tTestStruct *)avlTreePrev(pTree);

}

/*查找某個節(jié)點*/

key-keyA = 1;

key-keyB = 1;

key-keyC = 3;

pTest = (tTestStruct *)avlTreeFind(pTree , (TREE_NODE *)key);

if(pTest)

printf("\r\n 這里應(yīng)該可以查找到一條記錄,就是第二個插入的節(jié)點");

/*刪除一個節(jié)點,我們就將上面查找到的節(jié)點刪除*/

if(!avlTreeCount(pTree , (TREE_NODE *)pTest))

{

printf("\r\n 如果刪除失敗,只能說明一個問題,樹里面不存在這個節(jié)點");

return 0;

}

/*獲取樹的總的節(jié)點數(shù)*/

count = avlTreeCount(pTree);

printf("\r\n 我想現(xiàn)在count應(yīng)該等于1,剛才我們刪掉了一個節(jié)點");

/*清空整棵樹*/

avlTreeFlush(pTree);

/*刪除整棵樹,其實現(xiàn)在只有一顆裸樹了,因為樹節(jié)點都被flush掉了*/

avlTreeDestroy(pTree);

pTree = NULL;

return 1

}


當前題目:avl樹java代碼 java avg
分享地址:http://weahome.cn/article/dojhhgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部