如何使用C打印hashset的所有值?我已经将字符串存储在hashset中,我想显示它

时间:2016-10-10 22:44:03

标签: c hashset

document.addEventListener( "DOMContentLoaded", init, false );

function init()
{
  var select = document.getElementById('investortype');
  select.addEventListener( "change", function() {
    var option = select.options[select.selectedIndex];
    document.getElementById('show_exploremax').innerText  = option.dataset.max;
  }, false);
  select.selectedIndex = -1;
};

我接受了here的帮助。我在hashset中插入了值,但是我无法打印这些值。

2 个答案:

答案 0 :(得分:1)

它是一个标准的哈希表结构。大小,加上一系列链表。所以你需要迭代数组,然后遍历列表(大多数列表都是短的,有些将是空的)。数据没有特别的顺序。

void getdata(hashset *hash)
{
   int i;
   hashnode *ptr;

   for(i=0;i<hash->size;i++)
   {
       if(hash->chains[i])
       {
          for(ptr = hash->chains[i]; ptr; ptr = ptr->link)
          {
             printf("key : %s\n", ptr->word);
          }
       }
   }
}

答案 1 :(得分:0)

从查看它header file开始,API不包含这种操作。您所能做的就是检查字符串是否在集合中,不支持迭代所有添加的字符串。

你可以这样做:

hashset *newset = new_hashset(); /* You need this! */
char * const info = "1234";
put_hashset(newset, info);
printf("%s\n", has_hashset(newset, "1234") ? "yes" : "no");

它应该打印yes

当然你可以添加对迭代的支持,但这有点超出了这个问题的范围。这并不难,但你需要了解hashset的设计。