我正在使用D3.js构建一个树,我想要做的是添加两个按钮,全部展开和全部折叠到这样的页面顶部.

当我单击"全部展开"时,所有节点都应该展开.当我单击"全部折叠"时,所有节点都应折叠到根元素.
这是我目前的代码http://bl.ocks.org/anonymous/ab8d7f85cca6f745a107
但问题是,它不起作用.有人可以建议如何使它工作?
我想在D3.js做这件事,但无法找到办法.
我想要做的是,当一个人点击根节点(级别0)时,它应该显示子元素(级别1).当一个人点击其中一个子节点(级别1)时,它应该显示其子级(级别2)和父级和父级父级(级别1,这是用户单击的),但隐藏所有不相关的父级(从1级).
让我用图片向你解释一下.

我已经被赋予编写C程序的任务,以找到包含7个测试用例的子字符串.我编写了程序,但它只传递了6个测试用例.第7次失败,我无法确定其背后的原因.
编辑:这是我给作业的问题.
编写一个程序,它接受两个输入字符串S1和S2,并查找S2是否是S1的子字符串.如果S2是S1的子字符串,程序应该在S1处打印匹配的索引.如果S2不是S1的子字符串,程序应该打印-1.如果S2多次出现在S1中,则在S1中打印匹配发生的第一个索引.
这是我编写的程序的源代码.
#include <stdio.h>
#include <string.h>
int main() {
char st1[19];
char st2[19];
int cnt,i,k,c,len,m,sign;
scanf("%s %s", st1, st2);
len=strlen(st1);
for(i=0; i<len; i++) {
c=0;
if (st1[i] == st2[c]) {
m = i;
sign = 0;
cnt = 0;
while(st2[c] != '\0' && sign!=1) {
if (st1[m] == st2[c]) {
m++;
c++;
cnt++;
} else
sign=1;
}
if (sign == 0) {
printf("%d",i);
k=1;
}
}
}
if (k != 1)
if (sign!=0)
printf("-1");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第7个测试用例如下 …