熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構 6.7 建表達式的二叉樹算法演示

2013-11-15 14:57:16  來源: 數據結構 

  希賽教育計算機專業考研專業課輔導招生

  希賽教育計算機專業考研專業課輔導視頻

  希賽教育計算機考研專業課在線測試系統

  BiTree CrtExptree( char* exp )
  {
   // 建立由合法的表達式字符串 exp 確定的只含二元運算符的
   // 非空表達式樹返回其存儲結構二叉鏈表的根結點指針
   InitStack(S); Push(S#); // S為暫存運算符的棧
   InitStack(PTRS);     // PTRS為暫存子樹根指針的棧
   p=exp; ch=*p;
   while(!(GetTop(S)==#&& ch==#))
   {
    if (!IN(chOP)) CrtNode( t ch );  // 建葉子結點
    else {
     switch (ch) {
      case(: Push(S ch); break;
      case): {
       Pop(Sc);
       while (c!=()
       { CrtSubtree(tc); Pop(Sc);} // 建子樹直至運算符的棧頂為(
       break;
      }
      defult:{
       while (!GetTop(Sc) && (precede(cch)))
       { CrtSubtree(tc); Pop(Sc);}
       // 建子樹直至運算符棧頂運算符的優先數低
       if ( ch !=#) Push( Sch);
       break;
      } // defult
     } // switch
    } // else
    if (ch !=#) { p++; ch = *p; }
   } // while
   Pop(S c); Pop( PTRS t );
   DestroyStack(S); DestroyStack(PTRS);
   return t;
  } // CrtExptree

  算法的執行過程如動畫所示


From:http://tw.wingwit.com/Article/program/sjjg/201311/22595.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.