提高JAVA水平从这里开始1--数据结构篇[转来的] JAVA小猪 Java (2003-04-22 17:07:31) -------------------------------------------------------------------------------- 在电脑语言方面我是从tc开始,我钟爱C的原因是它让我明白许多DOS命令的原理。现在语言的发展让我也不明白什么是最好的,应该是各有所长,但我发现好象什么东西都有最基本的东西,现在我正和大家一样探讨JAVA,我想和大家一起去探索迷离的JAVA世界。但就我个人五年的计算机语言心得,我在学JAVA时还是要和大家一起分享,也许也希望我们大家一起共同缔造一个共同发展的空间。 从今天开始我将就我学JAVA的心理与知识一篇一篇地介绍,这些是最基本的东西,为得是起抛砖引玉的作用,请各位JAVA爱好者,JAVA大哥们一起来,说出大家的经验。 关于JAVA语言的规则,命名、简单数据类型、运算符与表达式。我就不说了。大家都知道在C语言中有一个很好的东西叫共同体(原叫结构体)JAVA没有,而讲C语言的结构体时必会对于链表、队列、二叉树来举例,大家都知道这些是数据库的基础,先来一个程序来分析JAVA来作链表的小程序: //*************************************************** //************************************************************************* //filename: MyLink.java //purpose: test a Link //date: 2002/12/10 //author: flyfan //ver: 0.1 //************************************************************************* public class MyLink { public static void main(String args[]) { int data[]={12,54,32,98,78,45,67,98,43,25}; LinkNode head=new LinkNode(data[0]); System.out.print("the original data:"+data[0]+";"); for(int i=1;i<data.length;i++) { head.insertLink(head,data[i]); System.out.print(data[i]+";"); } System.out.println("/n"); System.out.print("the data in link:"); head.print(head); head.removeNode(head,9; System.out.println("/n"); System.out.println("print the data after remove node:/n"); System.out.println("the data in link:"); head.print(head); } } class LinkNode { int data; LinkNode next; LinkNode(int data) { this.data=data; this.next=null; } public void print(LinkNode head) { LinkNode temp=head; while(temp!=null) { System.out.print(temp.data+";"); temp=temp.next; } } public void insertLink(LinkNode head,int data) { LinkNode temp=head; if(temp.data>data) { head=new LinkNode(data); head.next=temp; } else { while(temp.next!=null&&temp.next.data<data) { temp=temp.next; } if(temp.next==null) temp.next=new LinkNode(data); else { LinkNode p=new LinkNode(data); p.next=temp.next; temp.next=p; } } } public void removeNode(LinkNode head,int data) { LinkNode temp=head; if(head==null) return; else { if(head.data==data) { head=head.next; return; } else { while(temp.next!=null&&temp.next.data!=data) { temp=temp.next; } if(temp.next==null) return; else { temp.next=temp.next.next; } } } } } // end //************************************************************************* //print()是链表的遍历 //insertLink()是保序插入 //remove是删除结点 其它请自己分析。
|