樹相關的操作

2021-06-18 16:39:59 字數 1197 閱讀 2531

/***************===講乙個二叉樹變為排序二叉樹===

struct treenode

;void insertbstree(treenode **root,int data)

else

p=p->right;

}if(parent==null)

*root=tempnode;

else

}void pretranverse(treenode *root,treenode **bstroot)

}void converttree2bst(treenode *root,treenode **bstroot)

}//中序遍歷+前序遍歷重構二叉樹

void createtree1(treenode **root,int mid,int pre,int length)

//非遞迴中序遍歷二叉樹

void midtranverse(treenode *root)

else if(!mystack.empty())}}

//找二叉樹的父節點

treenode * findparent(treenode *root,treenode *tar)

bool isincludedintree(treenode *root,treenode *tar)

//刪除bst上的節點

void deletenodeofbst(treenode **root,treenode *tar)

treenode *temp=tar->left;

if(tar->right)

temp=tar->right;

tar->data=temp->data;

tar->left=temp->left;

tar->right=temp->right;

delete temp;

return;

}//找tar的中序遍歷的前驅(左子樹的最右節點)

treenode *parent=tar;

treenode *leftest=tar->left;

while(leftest->right)

tar->data=leftest->data;

if(parent!=tar)

else

tar->left=leftest->left;

delete leftest;

}

樹的相關操作

include stdio.h include malloc.h define maxlength 128 struct node struct node createnode int value struct stack struct queue void addchild struct node...

樹的相關操作

樹的直徑 對於樹上的邊帶有權重的話 而且每個節點最多只能經過一次的話 我們定義樹的直徑是倆個點最大距離為樹的直徑 然後其他的點的最大距離為到倆個直徑端點的最大的那個 include include include include include include include include inc...

b樹及其相關操作

b樹的插入 1.類似於二叉排序樹,按照關鍵字大小插入到最低層的某個非葉節點。2.如果插入後結點關鍵字輸滿足b樹階的要求 關鍵字數 b樹階 1 終止 3.如果結點上的關鍵字樹大於等於b樹的階,如對階 3的b樹,最多關鍵字數為2,此時進行了插入結點後該結點關鍵字數為3,則設三個關鍵字從大到小分別叫a,b...