结点 链表 练习

/*
 * 创建一个学生对象数组 然后以链表的形式存储
 * */
//创建一个学生类 
class Student
{
	String name; //名字
	int age;  //年龄
	//用于初始化学生对象的构造函数
	Student(String name, int age)
	{
		this.name = name;
		this.age = age;
	}
	public void showInfo()//无发定义为静态
	{
		System.out.println("姓名:"+name+"	年龄:"+age);
	}
}
//创建一个结点Node  每个结点的初始状态
class Node
{
	Student data; //学生数据
	Node next;    //指向下一个节点  也就是下一个对象的地址 即等于下个对象的引用
	Node()//为了创建空参数的新节点而写的构造函数  data没有指向
	{
		
	}
	Node(Student data)
	{
		this.data = data;
		this.next = null;
	}
}

class Link
{
	//创建一个单向链表   最后一个节点的n=null
	public void toLink(Student[] stu,Node first)
	{
		Node temp = first; 
		for(Student s:stu)
		{
			Node n = new Node(s);//创建一个有学生对象的结点 n 连接到temp的后面 
			temp.next = n; //n连接在temp的后面 即temp.next指向n
			temp = temp.next;//下一次循环本次的n就成了下一个n的temp即前一个结点
		}
	}
	//遍历链表的方法
	public void print(Node first)
	{
		Node temp = first; //第一个结点first没有数据
		while(temp.next!=null)
		{	
			temp = temp.next;   //temp转为第二个结点  因为第一个结点first没有数据
			temp.data.showInfo();
		}
	}
}
public class NodeDemo {

	public static void main(String[] args) {
		Student[] stu = {
				new Student("泉州",20),
				new Student("福州",15),
				new Student("厦门",10),
				new Student("泰宁",25),
				new Student("莆田",30),
				new Student("尤溪",35)
		};
		//创建一个头结点
		Node first = new Node(); //first结点没有数据
		Link link = new Link();
		link.toLink(stu,first);
		link.print(first);
	}

}

结点的练习

链表的创建  对象的引用类似指针 类类型变量 引用指向对象















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值