二叉树
本人建立二叉树的原始如下,可以看出我想用链表形式的来表现。
二叉树的内容包括
1.建立
2.遍历
先序遍历
中序遍历
后序遍历
3.查找
最大
最小
某个值
4.插入
5.删除
6.重建,见剑指offer
#include "stdafx.h"
#include <iostream>
using namespace std;
#define len sizeof(Node)
#define NULL 0
struct Node{
Node * left;
Node * right;
Node * parent;
int value;
};//注意此处有逗号
Node * createTree(int value){
Node *head;
head->left = NULL;
head->right =NULL;
head->value = value;
return head;
}
int main(){
//占底盘
Node node[8];
//分配值
for(int i=0;i<8;i++){
node[i].value = i+1;
node[i].left = NULL;
node[i].right = NULL;
node[i].parent =NULL;
}
//连接线
node[0].left = &node[1];
node[1].parent = &node[0]; //应该是双向的才对,这样才能遍历
node[1].left = &node[3];
node[3].parent = &node[1];
node[3].right = &node[6];
node[6].parent = &node[3];
node[0].right = &node[2];
node[2].parent = &node[0];
node[2].left = &node[4];
node[4].parent = &node[2];
node[2].left = &node[5];
node[5].parent = &node[2];
node[5].left = &node[7];
node[7].parent = &node[5];
return 0;
}
浙公网安备 33010602011771号