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();
    		}
    	}
    	
    
    }
    
  • 相关阅读:
    xml和json笔记
    Ajax开发技术介绍与实战练习
    MATLAB学习(4)——min
    MATLAB学习(2)——zeros
    MATLAB学习(1)——ordfilt2
    vim的基本命令
    VS2015 闪退问题
    Error (10028): Can't resolve multiple constant drivers for net "mydata[14]" at sd_read.v(207)
    自动识别设备
    Internal Error: Sub-system: CUT, File: /quartus/db/cut/cut_post_syn_util.cpp, Line: 709 name_to_atom_map[iname] == 0
  • 原文地址:https://www.cnblogs.com/working/p/3273103.html
Copyright © 2011-2022 走看看