public static void main(String[] args) {
List<A> list=new ArrayList<A>();
list.add(new A(1,1,0));
list.add(new A(2,2,1));
list.add(new A(3,3,1));
list.add(new A(4,4,2));
list.add(new A(5,5,2));
list.add(new A(6,6,3));
list.add(new A(7,7,3));
list.add(new A(8,8,4));
list.add(new A(9,9,5));
diayong(list,2);
}
private static void diayong(List<A>list,int i) {
// TODO Auto-generated method stub
for (A a : list) {
if(a.did==i){
System.out.println(a.id);
diayong(list,a.id);
}
}
}
输出结果 4 8 5 9 先找到等于2的第一次 4 然后找等于4的 8 然后没有了 再循环找到等于 2的 5 然后找到9 以此类推 不知道 是不是你要的
B. 遍历子元素怎么做
遍历子元素:
jquery中遍历子元素,可以利用 $("#ul_tags>dl") 这种需要是直接的子节点,或 $("div#ul_tags:dl") 也是可以的,也可以直接使用$("div#ul_tags a")的形式。
C. 如何遍历一个集合的所以子集
一个集合中所有元素在它的子集中只有两种情况:存在或者不存在,所以在列举子集的时候可以依次列过来,比如用树状图
比如(1,2,3,)这个集合
首先1存在是一组
1不存在是一组
每组下面2的存在与否又有两种情况,如图所示,每一层,只讨论一个数是否存在
D. Java递归遍历集合
首先把这张表的所有数据查询出来放到一个集合中(集合为List1),然后遍历这个集合,先根据集合List1中的父编号查询到一个集合 ,这样把list1遍历的对象和根据父编号查询到的集合构建问一个对象放到集合中就可以达到你的目的了,一下为代码说明:
import java.util.List;
public class dto1 {
private things thing;//当前编号得到的对象
private List list;//父编号查询到的集合
public things getThing() {
return thing;
}
public void setThing(things thing) {
this.thing = thing;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
*********************************************************************************
public class things {
private int number;
private String name;
private int parentnumber;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getParentnumber() {
return parentnumber;
}
public void setParentnumber(int parentnumber) {
this.parentnumber = parentnumber;
}
}
**************************************************************************
import java.util.ArrayList;
import java.util.List;
public class action {
public static void main(String[] args) {
List getlist=new ArrayList();
List list=new ArrayList();//list为你根据编号查询出来的集合
for(int i=0;i<list.size();i++)
{
things thing=(things)list.get(i);
int parentbumber=thing.getParentnumber();//得到父编号
List li=new ArrayList();//此li为根据父编号parentbumber查询到的集合
dto1 dto=new dto1();
dto.setThing(thing);
dto.setList(li);
list.add(dto);//把当前编号的对象和父编号得到的集合构建成一个dto放到最终你要的list中
}
}
}
E. 编写算法实现对二叉树进行按层次遍历
不明白楼主对于N叉树向二叉树的转换算法有没有了解,你的问题取了这个算法的子集,即对于N=2的具体问题的转换。
对于N叉树,可以建立一个二叉树,左子树为N叉树的最左子节点,右子树为同级节点。然后左序遍历新树就好。你去查查算法设计或者数据结构的书,有完整源码。
F. 在java中集合的遍历是怎样遍历的
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
//集合遍历
public class TestHashSet{
public static void main(String[] args) {
HashSet h = new HashSet();
h.add("1st");
h.add("2nd");
h.add(new Integer(3));
h.add(new Double(4.0));
h.add("2nd"); // 重复元素, 未被加入
h.add(new Integer(3)); // 重复元素,未被加入
h.add(new Date());
System.out.println("开始: size=" + h.size());
Iterator it = h.iterator();
while(it.hasNext()){
Object o = it.next();
System.out.println(o);
}
}
}
G. 用C语言编程实现图的遍历算法
图的遍历是指按某条搜索路径访问图中每个结点,使得每个结点均被访问一次,而且仅被访问一次。图的遍历有深度遍历算法和广度遍历算法,最近阿杰做了关于图的遍历的算法,下面是图的遍历深度优先的算法(C语言程序):
#include<stdio.h>
#include<malloc.h>
#define MaxVertexNum 5
#define m 5
#define TRUE 1
#define NULL 0
typedef struct node
{
int adjvex;
struct node *next;
}JD;
typedef struct EdgeNode
{
int vexdata;
JD *firstarc;
}TD;
typedef struct
{
TD ag[m];
int n;
}ALGRAPH;
void DFS(ALGRAPH *G,int i)
{
JD *p;
int visited[80];
printf("visit vertex:%d->",G->ag[i].vexdata);
visited[i]=1;
p=G->ag[i].firstarc;
while(p)
{
if (!visited[p->adjvex])
DFS(G,p->adjvex);
p=p->next;
}
}
void creat(ALGRAPH *G)
{
int i,m1,j;
JD *p,*p1;
printf("please input the number of graph\n");
scanf("%d",&G->n);
for(i=0;i<G->n;i++)
{
printf("please input the info of node %d",i);
scanf("%d",&G->ag[i].vexdata);
printf("please input the number of arcs which adj to %d",i);
scanf("%d",&m1);
printf("please input the adjvex position of the first arc\n");
p=(JD *)malloc(sizeof(JD));
scanf("%d",&p->adjvex);
p->next=NULL;
G->ag[i].firstarc=p;
p1=p;
for(j=2 ;j<=m1;j++)
{
printf("please input the position of the next arc vexdata\n");
p=(JD *)malloc(sizeof(JD));
scanf("%d",&p->adjvex);
p->next=NULL;
p1->next=p;
p1=p;
}
}
}
int visited[MaxVertexNum];
void DFSTraverse(ALGRAPH *G)
{
int i;
for(i=0;i<G->n;i++)
visited[i]=0;
for(i=0;i<G->n;i++)
if(!visited[i])
DFS(G,i);
}
int main()
{
ALGRAPH *G;
printf("下面以临接表存储一个图;\n");
creat(G);
printf("下面以深度优先遍历该图 \n");
DFSTraverse(G);
getchar();
}
H. 如何在java中实现List集合的遍历
java中实现List集合的遍历有三种方法:
for(Stringattribute:list){
System.out.println(attribute);
}
for(inti=0;i<list.size();i++){
system.out.println(list.get(i));
}
Iteratorit=list.iterator();
while(it.hasNext()){
System.ou.println(it.next);
}