单链表的实现类1

package singlelist_imp;

public class Link {

	public int idata;
	public double ddata;
	public Link next;        //链表指针
	
	public Link(int idata,double ddata)    //在构造函数中不用初始化first,因为当它被创建时first会自动被赋值为null
	{
		this.idata=idata;
		this.ddata=ddata;
	}
	
	public void display_link()
	{
		System.out.print("{"+idata+","+ddata+"}");
	}
}

 


 

package singlelist_imp;

public class Linklist {

	private Link first; //定义一个头指针
	
	public Linklist()
	{
		this.first=null;
	}
	
	public boolean empty()
	{
		return this.first==null;
	}
	
	/*为了插入新结点,只需要使新建立的结点的next指向原来的first值,然后改变first值,使它指向新建立的链结点*/
	public void insert_link(int idata,double ddata)   //定义插入函数
	{
		Link newlink=new Link(idata,ddata);
		newlink.next=first;
		first=newlink;            //使头指针指向要插入的数据的位置
	}
	
	/*通过把first重新指向第二个结点,使其与第一个结点断开链接就达到了删除的目的
	 * 通过查看第一个结点的next就可以找到第二个结点
	 * */
	public Link delete_first()    //删除链表的第一个元素
	{
		Link temp=first;        //将头指针赋给一个变量
		first=first.next;       //头指针指向下一个结点,此句说明删除第一个结点
		return temp;             //返回删除的Link
	}
	
	public void display_list()    //循环打印一个链表中的元素
	{
		System.out.println("打印链表中的数据:");
		Link current_link=first;        
		while(current_link!=null)
		{
			current_link.display_link();     //调用Link类中的打印函数
			current_link=current_link.next;
		}
		System.out.println(" ");
	}
}

//以下是对单链表的操作

package singlelist_imp;

public class Singlelist_test {

	public static void main(String[] args)
	{
		Linklist llist=new Linklist();
		llist.insert_link(11,23.3);         //插入时是从头结点插入的
		llist.insert_link(12,34.4);
		llist.insert_link(22,823.3);
		llist.insert_link(41,432.3);
		llist.insert_link(61,555.4);
		
		llist.display_list();          //调用打印函数且从头结点打印的
		while(!llist.empty())          //在调用删除之前先判断链表是否为空
		{
			System.out.println("调用deletefirst()");
			Link dellink=llist.delete_first();
			dellink.display_link();        //调用一下Link类中的打印函数,打印要删除的数据
			System.out.println(" ");
		}
		llist.display_list();
	}
}



 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值