樹的相關操作

2021-05-28 13:16:11 字數 746 閱讀 8487

#include "stdio.h"

#include "malloc.h"

#define maxlength 128

struct node

;struct node* createnode(int value)

struct stack

;struct queue

;void addchild(struct node* node, struct node* childnode)

else

}void firstroot(struct node* root)  //遞迴先根遍歷

}struct node* pop(struct stack* stack)

void pull(struct stack* stack, struct node* node)

void firstroot_stack(struct node* root) //用棧來實現

while(child_stack->top != -1)}}

struct node* out(struct queue* queue)

void in(struct queue* queue, struct node* node)

void layer_root(struct node* root) //遞迴層次遍歷只能用佇列實現}}

/*樹的結構為

1-----

2 3 4

- -5 6

*/int main()

樹相關的操作

講乙個二叉樹變為排序二叉樹 struct treenode void insertbstree treenode root,int data else p p right if parent null root tempnode else void pretranverse treenode roo...

樹的相關操作

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

b樹及其相關操作

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