新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于逆波蘭記號電信計費話單過濾算法設計

        基于逆波蘭記號電信計費話單過濾算法設計

        作者: 時間:2011-08-18 來源:網絡 收藏

          3.5 話單表達式運算的實現

          話單表達式最終將形成布爾值結果真或假,由此來判定該張話單是否被系統分為語法分析、業務邏輯處理兩個部分。語法分析是利用堆棧運算分解出原子表達式的過程;業務邏輯處理是針對原子表達式的語義作出相應的業務處理并求得該原子表達式的布爾值。以下是的偽C語言代碼:

          STACK stack;

          Bool result;

          String suffixexpress;

          Bool SyntaxAnlysis(suffixexpress){

          SETNULL(stack);

          Terminalsymb=GetNextTerminalsymb(suffixexpress);

          While (!IsNull(Terminalsymb)) {

          Switch(Terminalsymb){

          Case A to N PUSH(stack,Terminalsymbol);

          Case > to =

          POP(stack,value);

          POP(stack,factor_code);

          Comparesymb=Terminalsymb;

          Result=LogicProcess(factor_code,Com

          paresymbol,value);

          PUSH(stack,result)

          Case ∪,∩

          POP(stack,result1);

          POP(stack,result2);

          Logicalsymb=Terminalsymb;

          Result=BoolProcess(result1,Logicalsymbol,result2);

          PUSH(stack,result);

          }

          Terminalsymbol=GetNextTerminalsymbol(suffixexpress);

          }

          return TOP(stack);

          }

          在和開發湖南本地網系統過程中,運用逆和堆棧技術,ANSI C/C++開發環境成功完成了預處理的話單過濾系統。本算法稍加修改和擴充就可以應用到大部分涉及格式化文本和數據庫記錄過濾的應用中。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大荔县| 开阳县| 唐河县| 通海县| 绥江县| 萨嘎县| 邵阳市| 湟中县| 报价| 常宁市| 东兰县| 丹巴县| 阿鲁科尔沁旗| 林州市| 万山特区| 清远市| 栾川县| 武宁县| 土默特左旗| 阳新县| 夏邑县| 鄂伦春自治旗| 宁陵县| 香河县| 井研县| 温州市| 靖边县| 平度市| 格尔木市| 长葛市| 澜沧| 福州市| 甘谷县| 固镇县| 襄城县| 青神县| 萨嘎县| 师宗县| 蕉岭县| 钦州市| 元谋县|