public int find(char[] key, int start) {int d;char p = root;int i = start;char c;while (p != 0) {if (sc[p] == 0xFFFF) {if (strcmp(key, i, kv.getArray(), lo[p]) == 0) {return eq[p];} else {return -1;}}c = key[i];d = c - sc[p];if (d == 0) {if (c == 0) {return eq[p];}i++;p = eq[p];} else if (d < 0) {p = lo[p];} else {p = hi[p];}}return -1;}
public virtual int Find(char[] key, int start){int d;char p = m_root;int i = start;char c;while (p != 0){if (m_sc[p] == 0xFFFF){if (StrCmp(key, i, m_kv.Array, m_lo[p]) == 0){return m_eq[p];}else{return -1;}}c = key[i];d = c - m_sc[p];if (d == 0){if (c == 0){return m_eq[p];}i++;p = m_eq[p];}else if (d < 0){p = m_lo[p];}else{p = m_hi[p];}}return -1;}