本帖最后由 小歪 于 2014-3-24 07:56 编辑
/*
利用Java基础实现单向链表 要求格式如下:
输入:
3 // 表示接下来有三组数据要放入节点
4
5
6
则输出:
//对应元素的平方值
16
25
36
*/
import java.io.*;
class Node //节点声明
{
private int data; //用于存放数据
private Node next; //用于存放下一个节点地址
public void setData(int data)
{
this.data=data;
}
public int getData()
{
return this.data;
}
public void setNext(Node next)
{
this.next=next;
}
public Node getNext()
{
return this.next;
}
}
public class Link
{
public static void main(String[] args)throws Exception{
int n,data;
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
String str=buf.readLine();
n=Integer.parseInt(str); //以上键盘输入,并输入一个字符串,将其转换为int型
Node hand=new Node(); //创建头结点
hand.setNext(null); //习惯性将后面节点先置为空
Node temp=hand; //将头节点拷贝给temp,方便后面数据操作而不丢失头结点
for(;n>0;n--) //根据输入的节点个数来创建节点,并写入数据
{
str=buf.readLine();
temp.setData(Integer.parseInt(str));
if(n-1>0)
{
temp.setNext(new Node());
temp=temp.getNext();
temp.setNext(null);
}
}
temp=hand; //再次取得头结点
while(temp!=null) //遍历所有节点
{
System.out.println((int)Math.pow(temp.getData(),2)); //将节点内的数据进行求方并输出
temp=temp.getNext(); //获得下一个节点
}
}
}
运行 结果:
总结 本程序实际上就是针对引用的一种扩展应用,而且在本程序中只是实现了一个最简单的单向链表功能,随着以后的的深入学习,在本程序之上都可扩展出更为复杂的链表数据结构。
|