提高JAVA水平从这里开始1--数据结构篇[转来的]

提高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是删除结点

其它请自己分析。


 







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值