二叉树的前序中序后序

Posted yuhong1103

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的前序中序后序相关的知识,希望对你有一定的参考价值。

 1 //前序
 2 void preOrderUnRecur(ListNode* head)
 3 {
 4     cout << "pre-order: ";
 5     if (head != NULL)
 6     {
 7         stack<ListNode*> Stack;
 8         Stack.push(head);
 9 
10         while (!Stack.empty())
11         {
12             head = Stack.top();
13             Stack.pop();
14             cout << head->value << " ";
15             if (head->right != NULL)
16             {
17                 Stack.push(head->right);
18             }
19             if (head->left != NULL)
20             {
21                 Stack.push(head->left);
22             }
23         }
24     }
25 }
26 
27 //中序
28 void inOrderUnRecur(ListNode* head)
29 {
30     cout << "in-order: ";
31     if (head != NULL)
32     {
33         stack<ListNode*> Stack;
34         while (!Stack.empty() || head != NULL)
35         {
36             if (head != NULL)
37             {
38                 Stack.push(head);
39                 head = head->left;
40             }
41             else
42             {
43                 head = Stack.top();
44                 Stack.pop();
45                 cout << head->value << " ";
46                 head = head->right;
47             }
48         }
49     }
50 }
51 
52 //后序
53 void posOrderUnRecur(ListNode* head)
54 {
55     cout << "pos-order: ";
56     if (head != NULL)
57     {
58         stack<ListNode*> s1;
59         stack<ListNode*> s2;
60         s1.push(head);
61         while (!s1.empty())
62         {
63             head = s1.top();
64             s1.pop();
65             s2.push(head);
66             if (head->left != NULL)
67             {
68                 s1.push(head->left);
69             }
70             if (head->right != NULL)
71             {
72                 s1.push(head->right);
73             }
74         }
75         while (!s2.empty())
76         {
77             cout << s2.top()->value << " ";
78             s2.pop();
79         }
80     }
81 }

 

以上是关于二叉树的前序中序后序的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的前序中序后序遍历迭代实现

二叉树的前序中序后序

二叉树的前序中序后序

二叉树的前序中序后序遍历

二叉树的前序中序后序遍历

二叉树的前序中序后序遍历-非递归-使用同一段代码实现