1.栈
2.队列
3.最小堆
4.最大堆
5.链表
6.哈希表
大家能举一个就举一个,因为刚才C++转过来,对JAVA习惯性用的东西不太了解.
举例方式:例如: Stack stack=new Stack(); 这就是一个拿来用的栈.
不是太清楚,不过有那种Java数据结构的书,楼主可以找来看看。Set ,Vetor1.栈 java.util.Stack
2.队列 java.util.LinkedList,java.util.PriorityQueue
3.最小堆
4.最大堆
5.链表 java.util.linkedList
6.哈希表 HashMap
额,主要想写算法的同时练练java,所以想了解了解.Binary Search Tree
AVL Tree
Black and Red Tree
234 Tree
B/B+ tree
Hash Table
Trie
更主要的还是思想!!!
我感觉数据结构思想清楚以后,没事看看jdk里面java.util包里面的东西,非常好玩,非常有用。
专门为程序员打造的高质低价的男士纯棉T恤:http://t4coder.us
链表类List的源代码如下:
import java.io.*;
public class List
{
/*用变量来实现表头*/
private Node Head=null;
private Node Tail=null;
private Node Pointer=null;
private int Length=0;
public void deleteAll()
/*清空整个链表*/
{
Head=null;
Tail=null;
Pointer=null;
Length=0;
}
public void reset()
/*链表复位,使第一个结点成为当前结点*/
{
Pointer=null;
}
public boolean isEmpty()
/*判断链表是否为空*/
{
return(Length==0);
}
public boolean isEnd()
/*判断当前结点是否为最后一个结点*/
{
if(Length==0)
throw new java.lang.NullPointerException();
else if(Length==1)
return true;
else
return(cursor()==Tail);
}
public Object nextNode()
/*返回当前结点的下一个结点的值,并使其成为当前结点*/
{
if(Length==1)
throw new java.util.NoSuchElementException();
else if(Length==0)
throw new java.lang.NullPointerException();
else
{
Node temp=cursor();
Pointer=temp;
if(temp!=Tail)
return(temp.next.data); 说实话个人感觉对J2SE还算熟悉的
但对这些还真不怎么了解
JAVA中真正用到这些的时候几乎没有