示例#1
0
void show_trie(struct node* node, int pos) {
  static int g[6];

  if (!node) {
  }
  else if (node->last) {
    printf("%02d %08d %04d %04d %04d %0d4 %d\n", 
	   g[0], g[1], g[2], g[3], g[4], g[5], node->last);
  }
  else {
    int old = g[pos];

    show_trie(node->left, pos);
    
    g[pos] = node->ch;
    show_trie(node->mid, pos+1);
    g[pos] = old;

    show_trie(node->right, pos);
  }
}
示例#2
0
void solve() {
  int n = read_int();
  int i = 0;
  char s[100];
  int g[7];

  node_ptr = NODES;
  root = NULL;
  while (n-- > 0) {
    read_account(g);
    root = insert(root, g);
  }

  show_trie(root, 0);
}
示例#3
0
void show_trie(struct SOTrie *so, int depth)
{
	int i;
	const char *stoke[5] = { "一", "丨", "丿", "丶", "乙" };
	if (so == NULL) return;
	for (i = 0; i < 5; ++i) {
		if (so -> snext[i]) {
			int k;
			for (k = 0; k < depth; ++k) putchar(' ');
			printf("%s: ", stoke[i]);
			int j;
			if (so -> snext[i] -> sdata) {
				for (j = 0; j < so -> snext[i] -> sdata -> count; ++j) {
					putgbkchr(so -> snext[i] -> sdata -> data[j]);
					putchar(' ');
				}
			} else printf("[NULL]");
			printf("\n");
		} else continue;
		show_trie(so -> snext[i], depth + 4);
	}
}