二叉树的一些基本操作
数据结构的一些知识很久没碰了,忘得差不多了都,来回顾总结一下,本篇先写一下二叉树相关的一些操作。 二叉树定义 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 二叉树的创建 通过输入先序二叉树序列创建二叉树,用'#'字符代表空节点。 //通过先序输入创建二叉树 TreeNode* CreateTreeByInput() { char ch; std::cin >> ch; if (ch == '#') return NULL;//输入#表示创建结束 TreeNode* root = new TreeNode(ch); root->left = CreateTreeByInput(); root->right = CreateTreeByInput(); return root; } 二叉树的遍历 先序、中序、后序三种基本遍历方式。 //先序遍历 void PreOrder(TreeNode* root) { if (root == NULL)return; std::cout << (char)root->val << ' '; PreOrder(root->left); PreOrder(root-