首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java里的数据结构种,大家帮忙都举个例子吧

2012-12-16 
Java里的数据结构类,大家帮忙都举个例子吧!1.栈2.队列3.最小堆4.最大堆5.链表6.哈希表大家能举一个就举一

Java里的数据结构类,大家帮忙都举个例子吧!
1.栈
2.队列
3.最小堆
4.最大堆
5.链表
6.哈希表

大家能举一个就举一个,因为刚才C++转过来,对JAVA习惯性用的东西不太了解.

举例方式:例如: Stack stack=new Stack(); 这就是一个拿来用的栈.

[解决办法]
说实话个人感觉对J2SE还算熟悉的
但对这些还真不怎么了解
JAVA中真正用到这些的时候几乎没有
[解决办法]
1.栈         java.util.Stack
2.队列       java.util.LinkedList,java.util.PriorityQueue
3.最小堆
4.最大堆
5.链表       java.util.linkedList
6.哈希表     HashMap
[解决办法]

引用:
说实话个人感觉对J2SE还算熟悉的
但对这些还真不怎么了解
JAVA中真正用到这些的时候几乎没有


额,主要想写算法的同时练练java,所以想了解了解.
[解决办法]
Binary Search Tree
AVL Tree
Black and Red Tree
234 Tree
B/B+ tree
Hash Table
Trie



[解决办法]
不是太清楚,不过有那种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
[解决办法]
Set ,Vetor
[解决办法]

链表类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); 


   else 
    throw new java.util.NoSuchElementException(); 
  } 
  } 
  public Object currentNode() 
  /*返回当前结点的值*/ 
  { 
  Node temp=cursor(); 
  return temp.data; 
  } 
   
  public void insert(Object d) 
  /*在当前结点前插入一个结点,并使其成为当前结点*/ 
  { 
  Node e=new Node(d); 
  if(Length==0) 
  { 
   Tail=e; 
   Head=e; 
  } 
  else 
  { 
   Node temp=cursor(); 
   e.next=temp; 
   if(Pointer==null) 
    Head=e; 
   else 
    Pointer.next=e; 
  } 
  Length++; 
  } 
  public int size() 
  /*返回链表的大小*/ 
  { 
  return (Length); 
  } 
  public Object remove() 
  /*将当前结点移出链表,下一个结点成为当前结点,如果移出的结点是最后一个结点,则第一个结点成为当前结点*/ 
  { 
  Object temp; 
  if(Length==0) 
   throw new java.util.NoSuchElementException(); 
  else if(Length==1) 
  { 
   temp=Head.data; 
   deleteAll(); 
  } 
  else 
  { 
   Node cur=cursor(); 
   temp=cur.data; 
   if(cur==Head) 
    Head=cur.next; 
   else if(cur==Tail) 
   { 
    Pointer.next=null; 
    Tail=Pointer; 
    reset(); 
   } 
   else 
    Pointer.next=cur.next; 
    Length--; 
  } 
  return temp; 
  } 
  private Node cursor() 
  /*返回当前结点的指针*/ 
  { 
  if(Head==null) 
   throw new java.lang.NullPointerException(); 
  else if(Pointer==null) 
   return Head; 
  else 
   return Pointer.next; 
  } 
  public static void main(String[] args) 
  /*链表的简单应用举例*/ 
  { 
  List a=new List (); 
  for(int i=1;i<=10;i++) 
   a.insert(new Integer(i)); 
   System.out.println(a.currentNode()); 
   while(!a.isEnd()) 
    System.out.println(a.nextNode()); 
    a.reset(); 
    while(!a.isEnd()) 
    { 
     a.remove(); 
    } 
    a.remove(); 
    a.reset(); 
    if(a.isEmpty()) 
     System.out.println("There is no Node in List \n"); 
     System.in.println("You can press return to quit\n"); 
    try 
    { 
     System.in.read(); 
     //确保用户看清程序运行结果 
    } 
    catch(IOException e) 
    {} 
   } 
  } 
  class Node 
  /*构成链表的结点定义*/ 
  { 
   Object data; 
   Node next; 
   Node(Object d) 
   { 
    data=d; 
    next=null; 
   } 
  } 


[解决办法]
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分  

[解决办法]
1.栈 java.util.Stack 继承了Vector,List,实际上是一个列表的实现
2.队列 实现java.util.Queue接口的类
3.最小堆
4.最大堆 JAVA好像没有这东西
5.链表 实现java.util.List接口的类
6.哈希表 实现java.util.Map接口的类
具体的类,可以看API DOC,熟悉接口才是王道
------解决方案--------------------


每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
[解决办法]
感谢~~~~~~~~~
[解决办法]
小菜鸟,C语言刚入门,拜过!
[解决办法]
回复既有十分可用

热点排行