有没有给别人做图赚钱的网站,wordpress 自动水印,网页制作素材1001无标题,wordpress文章列表加广告一、前序遍历 算法流程: 1.先申请一个栈#xff0c;记为stk。 2#xff0e;然后将根节点压入stk中。 3#xff0e;每次从stk中弹出栈顶节点#xff0c;记为cur#xff0c;然后打印cur的值。如果cur的右子树不为空#xff0c;将cur的右子树压入stk中。如果cur的左子树不为…一、前序遍历 算法流程: 1.先申请一个栈记为stk。 2然后将根节点压入stk中。 3每次从stk中弹出栈顶节点记为cur然后打印cur的值。如果cur的右子树不为空将cur的右子树压入stk中。如果cur的左子树不为空将cur的左子树压入stk中。不断重复次步骤直到stk为空循环结束。 void Tree::Preorder(Node* root) {stackNode*stk;stk.push(root);cout 前序遍历 endl;while (!stk.empty()) {Node* cur stk.top();cout cur-val ;stk.pop();if (cur-right) {stk.push(cur-right);}if (cur-left) {stk.push(cur-left);}}
} 二、中序遍历 1申请一个栈记为stk,申请一个变量curcur被根节点初始化。 2把cur节点压入栈中对以cur节点为根节点的整棵子树依次把整棵树的左边界压入到栈中即不断的执stk.push(cur) ; cur cur-left;直到cur为空停止本次循环。 3.上面循环停止后弹出栈顶节点记录为node打印node并且让curnode-right;然后继续重复步骤2。 4直到stk为空并且cur也为空时停止整个循环。 void Tree::Inorder(Node* root) {Node* cur root;stackNode*stk;cout endl;cout 中序遍历endl;while (cur||!stk.empty()) {while(cur){stk.push(cur);cur cur-left;}Node* Node stk.top();stk.pop();cout Node-val ;cur Node-right;} 三、后序遍历 1申请两个栈记为S1和S2,然后将头结点压入S1中。 2.从s1中弹出的节点记为cur;然后先把cur的左子树压入到s1中然后把cur的右子树压入到s1中。每一个从S1中弹出的节点都放进S2中。 3不断重复步骤2直到S1为空整个过程结束。 void Tree::Postorder(Node* root) {stackNode*S1;stackNode*S2;;S1.push(root);cout endl;cout 后序遍历 endl;while (!S1.empty()) {Node* cur S1.top();S2.push(cur);S1.pop();if (cur-left) {S1.push(cur-left);}if (cur-right) {S1.push(cur-right);} }while (!S2.empty()) {cout S2.top()-val ;S2.pop(); }
}