新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于逆波蘭記號電信計費話單過濾算法設(shè)計

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

作者: 時間:2011-08-18 來源:網(wǎng)絡(luò) 收藏

  3.5 話單表達式運算的實現(xiàn)

  話單表達式最終將形成布爾值結(jié)果真或假,由此來判定該張話單是否被系統(tǒng)。分為語法分析、業(yè)務(wù)邏輯處理兩個部分。語法分析是利用堆棧運算分解出原子表達式的過程;業(yè)務(wù)邏輯處理是針對原子表達式的語義作出相應(yīng)的業(yè)務(wù)處理并求得該原子表達式的布爾值。以下是的偽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);

  }

  在和開發(fā)湖南本地網(wǎng)系統(tǒng)過程中,運用逆和堆棧技術(shù),ANSI C/C++開發(fā)環(huán)境成功完成了預(yù)處理的話單過濾系統(tǒng)。本算法稍加修改和擴充就可以應(yīng)用到大部分涉及格式化文本和數(shù)據(jù)庫記錄過濾的應(yīng)用中。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉