二叉树
本人建立二叉树的原始如下,可以看出我想用链表形式的来表现。
二叉树的内容包括
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; }