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

qq120848369 2010-05-09 03:00:16
1.栈
2.队列
3.最小堆
4.最大堆
5.链表
6.哈希表

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

举例方式:例如: Stack stack=new Stack(); 这就是一个拿来用的栈.
...全文
239 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjshsc3271 2012-11-15
  • 打赏
  • 举报
回复
回复既有十分可用
absolutely_sure 2010-05-10
  • 打赏
  • 举报
回复
小菜鸟,C语言刚入门,拜过!
qq120848369 2010-05-10
  • 打赏
  • 举报
回复
感谢~~~~~~~~~
liboofsc 2010-05-10
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
beiouwolf 2010-05-10
  • 打赏
  • 举报
回复
1.栈 java.util.Stack 继承了Vector,List,实际上是一个列表的实现
2.队列 实现java.util.Queue接口的类
3.最小堆
4.最大堆 JAVA好像没有这东西
5.链表 实现java.util.List接口的类
6.哈希表 实现java.util.Map接口的类
具体的类,可以看API DOC,熟悉接口才是王道
whut_lcy 2010-05-09
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
24K純帥 2010-05-09
  • 打赏
  • 举报
回复

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

javajz 2010-05-09
  • 打赏
  • 举报
回复
Set ,Vetor
jiandanus 2010-05-09
  • 打赏
  • 举报
回复
数据结构思想清楚以后,没事看看jdk里面java.util包里面的东西,非常好玩,非常有用。
专门为程序员打造的高质低价的男士纯棉T恤:http://t4coder.us
qq120848369 2010-05-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sunwei0615 的回复:]

Binary Search Tree
AVL Tree
Black and Red Tree
234 Tree
B/B+ tree
Hash Table
Trie
[/Quote]



hjjk123 2010-05-09
  • 打赏
  • 举报
回复
更主要的还是思想!!!
我感觉
ThinkCat 2010-05-09
  • 打赏
  • 举报
回复
不是太清楚,不过有那种Java数据结构的书,楼主可以找来看看。
sunwei0615 2010-05-09
  • 打赏
  • 举报
回复
Binary Search Tree
AVL Tree
Black and Red Tree
234 Tree
B/B+ tree
Hash Table
Trie


qq120848369 2010-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keeya0416 的回复:]

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

额,主要想写算法的同时练练java,所以想了解了解.
zfq642773391 2010-05-09
  • 打赏
  • 举报
回复
1.栈 java.util.Stack
2.队列 java.util.LinkedList,java.util.PriorityQueue
3.最小堆
4.最大堆
5.链表 java.util.linkedList
6.哈希表 HashMap
keeya0416 2010-05-09
  • 打赏
  • 举报
回复
说实话个人感觉对J2SE还算熟悉的
但对这些还真不怎么了解
JAVA中真正用到这些的时候几乎没有

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧