⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 symbtbl.cpp

📁 中科院开源的ictprop源码,使用方法: 1、修改源码中的InputComboBox.cpp文件 InvokeAction里面的txt文件路径换成你的本地路径; 2、入口在帮助里面
💻 CPP
字号:
#include "stdafx.h"
#include "symbol.h"
#include "symbtbl.h"

tblsearch(symbol_node_ref_tbl_t *ptbl, char* token){
    int cond;
    int low=0, high=ptbl->tblsize-1, mid;

    /*binary search*/
    while (low<=high){
          mid=(low+high)/2;
          if ((cond=strcmp(token, ptbl->tblbody[mid]->literal))<0)
             high=mid-1;
          else 
          if (cond>0)
             low=mid+1;
          else{
             ptbl->currpos=mid;
             return 1; 
          }   
    }
    ptbl->currpos=low;

    return 0;
}

tblinsert(symbol_node_ref_tbl_t *ptbl, symbol_node_t *pnews){
    int ptr;

    for (ptr=ptbl->tblsize;ptr>ptbl->currpos;ptr--)
        ptbl->tblbody[ptr]=ptbl->tblbody[ptr-1];
    ptbl->tblbody[ptbl->currpos]=pnews;

    return ++ptbl->tblsize;
}

tblremove(symbol_node_ref_tbl_t *ptbl, symbol_node_t **ppnews){
    unsigned int ptr;

    *ppnews=ptbl->tblbody[ptbl->currpos];
    for (ptr=ptbl->currpos+1;ptr<ptbl->tblsize;ptr++)
        ptbl->tblbody[ptr-1]=ptbl->tblbody[ptr];

    return --ptbl->tblsize;
}

tblappend(symbol_node_ref_tbl_t *ptbl, symbol_node_t *pnews){
  ptbl->currpos=ptbl->tblsize;
  ptbl->tblbody[ptbl->tblsize++]=pnews;

  return 0;
}

tblclear(symbol_node_ref_tbl_t *ptbl){
  unsigned int idx;

  for (idx=0;idx<ptbl->tblsize;idx++)
      ptbl->tblbody[idx]=NULL;
  ptbl->tblsize=0;
  ptbl->currpos=0;

  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -