栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

单向链表知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单向链表知识

单向链表

  • 对于单向链表来说,任何一个节点Node中都有两个属性:存储数据和下一个节点的内存

  • 链表优点:随机删除元素效率高【因为增删元素不涉及到大量元素位移】

  • 链表缺点:查询效率较低,每一次查找

    package chapter1;
    public class Node {
    	
    	//存储数据
    	Object data;
    	
    	//下一个节点的内存地址
    	Node next;
    	
    	public Node() {
    		
    	}
    	
    	public Node(Object data,Node next) {
    		this.data = data;
    		this.next = next;
    	}
    	
    }
    
    package chapter1;
    import chapter1.Node;
    public class Link {
    	
    	Node header = null;
    	
    	int size = 0;
    	
    	public int size() {
    		return size;
    	}
    	
    	//添加元素的方法
    	public void add(Object data) {
    		//创建一个新的节点对象
    		//让之前单链表的末尾节点next指向新的节点对象
    		//有可能这个元素是第一个,也可能是第二个、第三个
    		if(header == null) {
    			//说明还没有节点
    			//new一个新的节点对象,作为节点对象
    			//这个时候的头节点既是一个头节点,又是一个末尾节点
    			header = new Node(data, null);
    		}
    		else {
    			//说明头不是空,头节点已经有了
    			//找出当前末尾节点,让当前末尾节点的next是新节点
    			Node currentLastNode = findLast(header);
    			currentLastNode.next = new  Node(data,null);
    			//末尾节点等于一个新的节点
    			size++;
    			
    		}
    		
    	}
    	
    	//专门查找末尾节点的方法
    	private Node findLast(Node node) {
    		if(node.next == null) {
    			//如果一个节点的next是null,说明这个节点就是末尾节点
    			return node;
    		}
    		//程序能够到这里说明:node不是末尾节点
    		return findLast(node.next);//递归算法
    	}
    	
    	//删除
    	public void remove(Object obj) {
    		//把要删的数据的内存地址给上一个数据的内存地址
    		
    	}
    	
    	//修改
    	public void modify(Object newObj) {
    		
    	}
    	
    	//查找
    	public int find(Object obj) {
    		return 1;
    	}
    	
    	//输出
    	public int P
    }
    
    import chapter1.Link;
    import chapter1.Node;
    public class Test02 {
    	public static void main(String[] args) {
    		//创建了一个集合对象
    		Link link = new Link();
    		
    		//在集合中添加元素
    		link.add(100);
    		link.add(200);
    		link.add(300);
    		
    		//获取元素
    		System.out.println(link.size());
    		
    	}
    }

    某个元素的时候都需要从头节点开始往下遍历

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号