Java基础入门笔记-链表与容器

容器(Container):存储对象的东西。
容器是一个设计上的术语,不是一个语法概念。
比如数组,就是一个容器


数组容器
缺点:
1.容量固定,无法扩展。既不能射太大,也不能太小,很难确定。
2.插入和删除代价大。


链表可以完美解决。


链表(Linked List):一种组织数据的方式;



链表与容器:
严格来说,链表并不是容器,链表只是容器的一种实现方式;


1.插入链表
2.删除链表
3.查找链表


把对象放入容器;


下面是Java单链表的代码:

HelloWorld.java

package my;


public class HelloWorld
{

	public static void main(String[] args)
	{		
		LinkList a=new LinkList();
		for(int i=0;i<10;i++) {	//构造一个链表
			LinkNode b=new LinkNode(i);
			a.insertNode(i, b);
		}
		System.out.print("初始化的链表:");
		a.showList();
		LinkNode b=new LinkNode(100);
		System.out.print("(从0开始数)在第三个位置插入结点:");
		a.insertNode(3, b);	
		a.showList();
		System.out.print("(从0开始数)删除第三个位置的结点:");
		a.deleteNode(3);
		a.showList();
	} 

}

LinkList.java

package my;

public class LinkList
{
	private LinkNode head;
	private int NodeNum=0;
	private LinkNode q;
	public LinkList() {
		head=new LinkNode(0);	//头结点
		head.next=null;
	}
	public void insertNode(int position,LinkNode p) {	//从下标0开始插入
		 if(position<0||position>NodeNum) {
			 System.out.println("插入失败,位置有问题");
			 return;
		 }
		 q=head;
		 for(int i=0;i<position;i++) {
			 q=q.next;
		 }
		 p.next=q.next;
		 q.next=p;
		 NodeNum++;
	}
	public void deleteNode(int position) {
		 if(position<0||position>NodeNum) {
			 System.out.println("删除失败,位置有问题");
			 return;
		 }
		 q=head;
		 for(int i=0;i<position;i++)
			 q=q.next;
		 q.next=q.next.next;
		 NodeNum--;
	}
	public void showList() {
		for(LinkNode p=head.next;p!=null;p=p.next)
			System.out.print(p.data+"->");
		System.out.print("null\n");
	}
	
}

LinkNode.java

package my;

public class LinkNode
{
	int data;
	LinkNode next;
	public LinkNode(int i) {
		data=i; 
	}
}


运行结果如下:




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值