国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言二叉樹的非遞歸遍歷實(shí)例分析

2020-01-26 15:19:07
字體:
供稿:網(wǎng)友

本文以實(shí)例形式講述了C語言實(shí)現(xiàn)二叉樹的非遞歸遍歷方法。是數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)中常用的技巧。分享給大家供大家參考。具體方法如下:

先序遍歷:

void preOrder(Node *p) //非遞歸{  if(!p) return;  stack<Node*> s;  Node *t;  s.push(p);  while(!s.empty())  {    t=s.top();    printf("%d/n",t->data);    s.pop();    if(t->right) s.push(t->right);    if(t->left) s.push(t->left);  }}

中序遍歷:

void inOrder(Node *p){if(!p)return;stack< pair<Node*,int> > s;Node *t;int unUsed;s.push(make_pair(p,1));while(!s.empty()){t=s.top().first;unUsed = s.top().second;s.pop();if(unUsed){if(t->right)s.push( make_pair(t->right,1) );s.push( make_pair(t,0) );if(t->left)s.push( make_pair(t->left,1));}else printf("%d/n",t->data);}}

后序遍歷:

void postOrder(Node *p){  if(!p) return;  stack<pair<Node*,int> > s;  Node *t;  int unUsed;  s.push(make_pair(p,1));  while(!s.empty())  {    t=s.top().first;    unUsed=s.top().second;    s.pop();    if(unUsed)    {      s.push(make_pair(t,0);      if(t->right)        s.push(make_pair(t->right,1));      if(t->left)        s.push(make_pair(t->left,1));    }    else printf("%d/n",t->data);  }}

希望本文所述對(duì)大家C程序算法設(shè)計(jì)的學(xué)習(xí)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 滦南县| 铜陵市| 金秀| 中超| 扶绥县| 泾源县| 鲁甸县| 阿图什市| 辉县市| 花垣县| 台北市| 顺义区| 绥德县| 五指山市| 桂阳县| 江油市| 潜江市| 峨边| 内黄县| 壶关县| 新兴县| 香港| 清原| 新泰市| 百色市| 卫辉市| 杭州市| 和龙市| 兰坪| 和静县| 汕尾市| 绥棱县| 博客| 阿拉善盟| 忻州市| 西平县| 商洛市| 海晏县| 历史| 佛学| 马尔康县|