0001 template <typename K, typename V> void UniPrint::p(Hashtable<K,V>& HT) { 0002 printf("%s*%d/%d/%d:\n", typeid(HT).name(), HT.N, HT.U, HT.M); //基本信息 0003 //printf("%s[%d]*(%d + %d)/%d:\n", typeid(HT).name(),(int) &HT, HT.N, HT.removed->size(), HT.M); //基本信息 0004 for (Rank i = 0; i < HT.M; i++) //输出桶编号 0005 printf(" %4d ", i); 0006 printf("\n"); 0007 for (Rank i = 0; i < HT.M; i++) //输出所有元素 0008 if (HT.ht[i]) printf("<%04d>", HT.ht[i]->key); //演示用,仅适用于int 0009 else if (HT.used[i]) printf("<****>"); 0010 else printf("------"); 0011 printf("\n"); 0012 for (Rank i = 0; i < HT.M; i++) //输出所有元素 0013 if (HT.ht[i]) printf(" %c ", HT.ht[i]->value); //演示用,仅适用于char 0014 //if (ht.ht[i]) printf("%8s", ht.ht[i]->value); //针对Huffman编码中使用的散列表 0015 else if (HT.used[i]) printf(" * "); 0016 else printf(" "); 0017 printf("\n"); 0018 } //p