zoukankan      html  css  js  c++  java
  • 简单单向链表的列子

    package node;
    
    public class LNode {
        private int data; // 脚标
        private LNode next;// 表示下一个节点
    
        public int getData() {
            return data;
        }
    
        public void setData(int data) {
            this.data = data;
        }
    
        public LNode getNext() {
            return next;
        }
    
        public void setNext(LNode next) {
            this.next = next;
        }
    
    }
    package node;
    
    public class Linklist {
    
    	private LNode head; // 定义一个头节点
    
    	// 创建链表的方法
    	public void createlink(int[] a) {
    		LNode pnew;// 表示新产生的节点
    		LNode ptail = new LNode();// 表示末节点
    		head = ptail;// 开始头节点跟末节点相同
    		for (int i = 0; i < a.length; i++) {
    			pnew = new LNode();
    			pnew.setData(a[i]); // 表示新节点的角标
    			ptail.setNext(pnew);
    			pnew.setNext(null);// 把新长生成的节点节点设置为空
    			ptail = pnew; // 把末尾设置当前最新的,实质是在移动末尾
    		}
    	}
    
    	public static void main(String[] args) {
    		Linklist ll = new Linklist();
    		int a[] = new int[10];
    		for (int i = 0; i < a.length; i++) {
    			a[i] = i;
    		}
    		ll.createlink(a);
    		//测试搜索的方法
    		ll.searchlink(1);
    	}
    
    	// 搜索的方法
    	public void searchlink(int value) {
    		LNode ptr;
    		ptr = head.getNext();
    		while (ptr != null) {
    			if (value == ptr.getData()) {
    				System.out.println("找到数据:" + ptr.getData());
    				break;
    			} else {
    				ptr = ptr.getNext();
    			}
    		}
    		if (ptr == null) {
    			System.out.println("整个遍历完了,没找到数据");
    		}
    	}
    	
    	//删除的方法
    	public void deletelink(int value){
    		LNode  p = head;
    		LNode ptr = head.getNext();
    		while(ptr != null){
    			if(ptr.getData() == value){
    				p.setNext(ptr.getNext());//此处覆盖
    				System.out.println("删除成功");
    				break;
    			}else{
    				p = ptr;
    				ptr = ptr.getNext();
    			}
    		}
    	}
    	
    	//定义插入节点发方法
    	public void insertlink(int pot,int value){
    		LNode ptr;
    		LNode pnew;
    		ptr = head.getNext();
    		while(ptr != null){
    			if (pot == ptr.getData()){
    				pnew = new LNode ();
    				pnew.setData(value);
    				pnew.setNext(ptr.getNext());
    				ptr.setNext(pnew);
    				System.out.println("插入成功");
    				break;
    			}else{
    				ptr = ptr.getNext();
    			}
    		}
    		if (ptr == null){
    			System.out.println("插入数据失败");
    		}
    	}
    	
    	//循环打印出所有的
    	public void printLink(){
    		LNode ptr;
    		ptr = head.getNext();
    		while (ptr != null){
    			System.out.println(ptr.getData());
    			ptr = ptr.getNext();
    		}
    	}
    	
    
    }
    
  • 相关阅读:
    HashMap源码解析
    如何同时运行两个Tomcat
    Thymeleaf遍历List<Map>和Map<>
    Apache POI详解
    如何管理系统的右键新建菜单
    datatable的dom配置
    如何获取Html的height和width属性(网页宽、高)
    什么是跨域?如何解决跨域问题?
    C# 各类文件扩展名
    C# 接口与抽象类的区别? 什么情景下使用接口,什么情景下使用抽象类?
  • 原文地址:https://www.cnblogs.com/working/p/3273103.html
Copyright © 2011-2022 走看看