在百度建免费网站吗,aspnet网站开发技术,建设部规范网站,好的app设计网站二叉树基本知识点2#xff1a; 二叉树的非递归后序遍历 前序遍历是#xff1a;根、左、右#xff0c;后序遍历是#xff1a;左、右、根#xff0c;观察发现#xff1a;前序和后序刚好遍历顺序相反。由于非递归后序遍历需要保存根节点及第几次访问#xff0c;比较麻烦。可… 二叉树基本知识点2 二叉树的非递归后序遍历 前序遍历是根、左、右后序遍历是左、右、根观察发现前序和后序刚好遍历顺序相反。由于非递归后序遍历需要保存根节点及第几次访问比较麻烦。可以将整个过程变为先非递归前序遍历将结果保存再将结果翻转即可。 已知二叉树的前序、中序序列求后序序列 void suffix_order(char* pre_order, char* in_order, int len){ if(NULL pre_order || NULL in_order){ return; } char root pre_order[0]; if(len 1){ suffix[level] root; if(level pre_order_len){ int i; for(i0; ilevel; i){ printf(%c ,suffix[i]); } return ; } return; } suffix[level] root; int j0; char * in in_order; while(*in ! \0 root ! *in){ j; if(j len){ break; } in; } int left_len in - in_order; int right_len len - left_len - 1; if(right_len 0){ suffix_order(pre_order1left_len,in_order1left_len,right_len); } if(left_len 0){ suffix_order(pre_order1,in_order,left_len); } }