当前位置:   article > 正文

问题 C: 算法6-1~6-4:二叉链表存储的二叉树_树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。对于每一个结点

树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。对于每一个结点

时间限制: 1 Sec  内存限制: 32 MB
提交: 1816  解决: 1117
 

题目描述

树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。对于每一个结点至多只有两棵子树的一类树,称其为二叉树。二叉树的链式存储结构是一类重要的数据结构,其形式定义如下:

而二叉树的前序、中序遍历是非常重要的能够访问二叉树所有结点的算法,下面分别列出一种先序遍历和两种中序遍历的算法。

第一种中序遍历的方法(算法6.3):

第二种中序遍历的方法(算法6.2):

通过读入一个字符串,建立二叉树的算法如下:

在本题中,将会给出一个按照先序遍历得出的字符串,空格代表空的子节点,大写字母代表节点内容。请通过这个字符串建立二叉树,并按照题目描述中的一种先序遍历和两种中序遍历的算法分别输出每一个非空节点。

输入

输入只有一行,包含一个字符串S,用来建立二叉树。保证S为合法的二叉树先序遍历字符串,节点内容只有大写字母,且S的长度不超过100。

输出

共有三行,每一行包含一串字符,表示分别按先序、中序、中序得出的节点内容,每个字母后输出一个空格。请注意行尾输出换行。

样例输入

ABC  DE G  F   

样例输出

  1. A B C D E G F
  2. C B E G D F A
  3. C B E G D F A

提示


遍历是二叉树各种操作的基础,可以在遍历的过程中对节点进行各种操作。通过二叉树的遍历,可以建立二叉树。而先序、中序和后序遍历分别具有各自的特点,是探索二叉树性质的绝佳“武器”。

代码实现 

  1. #include<iostream>
  2. using namespace std;
  3. struct tree
  4. {
  5. tree* left;
  6. char data;
  7. tree* right;
  8. }*head = NULL;
  9. void creattree(tree*& p)
  10. {
  11. char ch = getchar();
  12. if (ch == ' ')
  13. {
  14. p = NULL;
  15. return;
  16. }
  17. else
  18. {
  19. p = new tree;
  20. if (head == NULL)head = p;
  21. p->data = ch;
  22. creattree(p->left);
  23. creattree(p->right);
  24. }
  25. }
  26. void preOrder(tree* head)
  27. {
  28. if (head != NULL)
  29. {
  30. cout << head->data << " ";
  31. preOrder(head->left);
  32. preOrder(head->right);
  33. }
  34. }
  35. void inOrder(tree* head)
  36. {
  37. if (head != NULL)
  38. {
  39. inOrder(head->left);
  40. cout << head->data << " ";
  41. inOrder(head->right);
  42. }
  43. }
  44. void postOrder(tree* head)
  45. {
  46. if (head != NULL)
  47. {
  48. postOrder(head->left);
  49. postOrder(head->right);
  50. cout << head->data << " ";
  51. }
  52. }
  53. int main()
  54. {
  55. tree* p = head;
  56. creattree(p);
  57. preOrder(head); cout << endl;
  58. inOrder(head); cout << endl;
  59. inOrder(head); cout << endl;
  60. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/776099
推荐阅读
相关标签
  

闽ICP备14008679号