亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++二叉樹應用:計算表達式

2020-05-23 14:24:40
字體:
來源:轉載
供稿:網友

昨天晚上,我花了大把的時間研究里面二叉樹應用解決計算表達式的問題,一直就沒理解,主要是覺得是不是自己錯了,又懶,不愿意自己把代碼敲到電腦里看看,結果浪費了很多時間。所以還是提醒大家,代碼這種東西,有什么好多看的,覺得他錯了就自己敲到電腦里去看看!其實也沒錯太多,就是少了一些東西,導致原代碼里的括號完全沒有意義,也就是說,書中的代碼雖然考慮到了計算表達式中的括號,卻什么都沒有做,而這其實只要稍稍改進:加一個flag存儲上次讀到的char,如果是‘)’的話,就要把左式當成運算數來計算

  好了,把正確的代碼貼在下面:

  #include <iostream>

  using namespace std;

  class calc

  {

  enum Type {DATA, ADD, SUB, MULTI, DIV, OPAREN, CPAREN, EOL};

  struct node

  {

  Type type;

  int data;

  node *lchild, *rchild;

  node(Type t, int d=0, node *lc=NULL, node *rc=NULL)

  {

  type=t; data=d; lchild=lc; rchild=rc;

  }

  };

  node *root;

  node *create(char * &s);

  Type getToken (char * &s, int &value);

  int result (node *t);

  public:

  calc (char *s) {root=create(s);}

  int result() {if (root==NULL) return 0;

  return result(root);}

  };

  calc::node *calc::create(char * &s)

  {

  node *p, *root=NULL;

  Type returnType,flag=DATA;

  int value;

  while (*s)

  {

  flag=returnType;

  returnType=getToken(s,value);

  switch (returnType)

  {

  case DATA:

  case OPAREN:

  if (returnType == DATA) p=new node(DATA,value);

  else p=create(s);

  if (root==NULL) root=p;

  else if (root->rchild==NULL) root->rchild=p;

  else root->rchild->rchild=p;

  break;

  case CPAREN:

  case EOL: return root;

  case ADD:

  case SUB:

  root=new node(returnType,0,root);

  break;

  case MULTI:

  case DIV:

  if (root->type==DATA || root->type==MULTI || root->type==DIV || flag==OPAREN)

  root=new node(returnType,0,root);

  else root->rchild=new node(returnType,0,root->rchild);

  }

  }

  return root;

  }

  calc::Type calc::getToken(char *&s, int &data)

  {

  char type;

  while (*s==' ') ++s;

  if (*s>='0' && *s<='9')

  {

  data=0;

  while (*s>='0' && *s<='9') {data=data*10+ *s-'0'; ++s;}

  return DATA;

  }

  if (*s == '/0') return EOL;

  type =*s; ++s;

  switch(type)

  {

  case '+':return ADD;

  case '-':return SUB;

  case '*':return MULTI;

  case '/':return DIV;

  case '(':return OPAREN;

  case ')':return CPAREN;

  default: return EOL;

  }

  }

  int calc::result(node *t)

  {

  int num1,num2;

  if (t->type == DATA) return t->data;

  num1=result(t->lchild);

  num2=result(t->rchild);

  switch(t->type)

  {

  case ADD:t->data=num1+num2;break;

  case SUB:t->data=num1-num2;break;

  case MULTI: t->data=num1*num2;break;

  case DIV:t->data=num1/num2;break;

  }

  return t->data;

  }

  int main()

  {

  char equation[256];

  cin>>equation;

  //calc exp("3*(2+(6/2))");

  calc exp(equation);

  cout<<exp.result()<<endl;

  return 0;

  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲激情中文字幕| 亚洲人成网站999久久久综合| 欧美一性一乱一交一视频| 在线电影欧美日韩一区二区私密| 久久久国产一区二区| 亚洲国产欧美在线成人app| www.亚洲男人天堂| 国产91在线播放| 成人444kkkk在线观看| 国产91免费看片| 一本一道久久a久久精品逆3p| 日韩激情视频在线| 国产精品美女久久久久久免费| 成人免费xxxxx在线观看| 国产在线观看91精品一区| 91综合免费在线| 91美女福利视频高清| 91精品国产自产在线老师啪| 国产精品偷伦免费视频观看的| 中文字幕精品一区二区精品| 国产va免费精品高清在线观看| 97欧美精品一区二区三区| 91免费国产视频| 亚洲免费电影一区| 久久99亚洲精品| 亚洲成年网站在线观看| 国产v综合v亚洲欧美久久| 国产97在线|日韩| 国产999精品久久久| 在线观看精品自拍私拍| 国产69精品99久久久久久宅男| 欧美久久精品一级黑人c片| 亚洲另类图片色| 亚洲爱爱爱爱爱| 欧美黑人视频一区| 欧美在线观看网站| 中文日韩电影网站| 91在线观看免费网站| 久久免费在线观看| 国产美女精品免费电影| 亲子乱一区二区三区电影| 成人欧美一区二区三区在线湿哒哒| 亚洲成人在线视频播放| 欧美日韩免费网站| 欧美自拍视频在线| 日韩中文第一页| 日韩免费不卡av| 亚洲国产成人久久综合| 国产精品视频在线播放| 欧美日韩久久久久| 亚洲视频在线看| 欧美巨猛xxxx猛交黑人97人| 日韩精品中文字幕久久臀| 亚洲网站在线观看| 亚洲最大成人网色| 欧美日韩xxxxx| 欧美国产精品日韩| 亚洲香蕉成人av网站在线观看| 亚洲天堂免费视频| 91av在线免费观看视频| 欧美性猛交xxxx乱大交| 亚洲级视频在线观看免费1级| 欧美一级淫片丝袜脚交| 欧美大人香蕉在线| 国产91在线播放精品91| 欧美日韩中文字幕综合视频| 一区二区三区视频观看| 日韩女优人人人人射在线视频| 午夜精品久久久久久久久久久久| 午夜欧美不卡精品aaaaa| 68精品久久久久久欧美| 精品久久久一区二区| 精品福利一区二区| 国产在线拍偷自揄拍精品| 亚洲aa在线观看| 欧美高跟鞋交xxxxhd| 超碰97人人做人人爱少妇| 亚洲精品视频在线观看视频| 亚洲视频欧洲视频| 久久国产精品久久久久久久久久| 国产精品白嫩美女在线观看| 4438全国亚洲精品在线观看视频| 日韩有码片在线观看| 日韩精品免费在线播放| 一区二区三区视频在线| 国产日韩综合一区二区性色av| 亚洲女人天堂成人av在线| 97国产suv精品一区二区62| 成人性生交大片免费观看嘿嘿视频| 日韩av最新在线观看| 亚洲精品中文字幕有码专区| 午夜精品一区二区三区在线视| 裸体女人亚洲精品一区| 91免费看片在线| 欧美黄色性视频| 菠萝蜜影院一区二区免费| 欧美日韩亚洲激情| 亲子乱一区二区三区电影| 最近2019中文字幕在线高清| 国产精品99久久久久久久久| 成年无码av片在线| 日本aⅴ大伊香蕉精品视频| 亚洲女性裸体视频| 日本道色综合久久影院| 91久久久久久| 狠狠色狠狠色综合日日小说| 国产成人av在线| 日韩一区二区av| 青青青国产精品一区二区| 亚洲视频在线观看视频| 久久久久久久久久久av| 一区二区三区动漫| 日韩美女av在线| 国产美女搞久久| 日韩久久免费视频| 欧美在线视频一区二区| 国产国语videosex另类| 精品精品国产国产自在线| 国产日韩中文字幕在线| 一区二区欧美激情| 日韩精品在线观看一区二区| 欧美第一淫aaasss性| 久久久久久国产精品美女| 久久久视频免费观看| 久久人人爽人人爽爽久久| 奇米影视亚洲狠狠色| 中文字幕亚洲精品| 中文字幕精品视频| 国产日韩欧美中文在线播放| 欧美日韩亚洲一区二区三区| 国产精品∨欧美精品v日韩精品| 日韩成人在线视频观看| 欧美黑人巨大精品一区二区| 7777免费精品视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩国产综合新一区| 亚洲人高潮女人毛茸茸| 欧美日韩亚洲一区二区| 成人午夜在线观看| 久久视频免费在线播放| 久久99国产精品久久久久久久久| 欧美精品成人91久久久久久久| 国产精品第七十二页| 亚洲男人第一av网站| 久久高清视频免费| 国内精品美女av在线播放| 国产一区二区三区免费视频| 欧美极品少妇与黑人| 精品视频中文字幕| 欧美午夜性色大片在线观看| 国产在线精品一区免费香蕉| 亚洲久久久久久久久久久| 国产精品美女在线| 色吧影院999| 久久色免费在线视频| 亚洲日韩中文字幕| 国产精品一区专区欧美日韩| 亚洲美女性生活视频| 亚洲男人第一网站| 在线看欧美日韩| 亚洲国产成人爱av在线播放| 亚洲丁香久久久| 在线观看国产精品91| 成人免费福利视频|