⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test2.java

📁 java的3个小实验
💻 JAVA
字号:
package src;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test2 {
	//双向链表
    private Node doubleDirList=null;
    /**
     * 构造双向链表
     * @throws IOException 
     *
     */
    private void createDoubleDirList() throws IOException
    {
    	//输入
    	String numbers="";
    	System.out.println("0-9的随机系列,用\",\"格开:");
    	BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    	numbers=br.readLine();
		br.close();
		//解析输入
		
		StringTokenizer tokenizer=new StringTokenizer(numbers,",");
		doubleDirList=new Node();
		doubleDirList.setData(new Integer(tokenizer.nextToken()).intValue());
		Node current=doubleDirList;
		while(tokenizer.hasMoreTokens())
		{
			Node newNode=new Node();
			newNode.setData(new Integer(tokenizer.nextToken()).intValue());
			newNode.setPrev(current);
			current.setNext(newNode);
			current=newNode;
		}
    }
    /**
     * 正向输出
     *
     */
    private void printFromFirstToLast()
    {
    	String result="";
    	System.out.println("正向输出:");
    	Node current=doubleDirList;
    	while(current!=null)
    	{
    		result+=current.getData()+" ";
    	    current=current.getNext();
    	}
    	System.out.println(result);
    }
    /**
     * 反向输出
     *
     */
    private void printFromLastToFirst()
    {
    	String result="";
    	System.out.println("反向输出:");
    	Node current=doubleDirList;
    	while(current!=null&&current.getNext()!=null)
    	{
    	    current=current.getNext();
    	}
    	while(current!=null)
    	{
    		result+=current.getData()+" ";
    	    current=current.getPrev();
    	}
    	System.out.println(result);
    }
    /**
     * 降序输出
     *
     */
    private void printFromLargeToSmall()
    {
    	downSort();
    	String result="";
    	System.out.println("降序输出:");
    	Node current=doubleDirList;
    	while(current!=null)
    	{
    		result+=current.getData()+" ";
    	    current=current.getNext();
    	}
    	System.out.println(result);
    }
    /**
     * 找到双向链表中的最大节点
     * @param doubleList
     * @return
     */
    private Node getLargestNode(Node doubleList)
    {
    	Node largestNode=doubleList;
    	Node current=doubleList.getNext();
    	while(current!=null)
    	{
    		if(current.getData()>largestNode.getData())
    		{
    			largestNode=current;
    		}
    		current=current.getNext();
    	}
    	return largestNode;
    }
    /**
     * 将双向链表按降序调整
     *
     */
    private void downSort()
    {
    	Node current=doubleDirList;
    	while(current!=null)
    	{
    		Node largestNode=getLargestNode(current);
        	if(largestNode.getData()!=current.getData())
        	{
        		swop(largestNode,current);
        	}
        	current=current.getNext();
    	}
    }
    /**
     * 将双向链表中的两节点互换位置
     * @param node1
     * @param node2
     */
    private void swop(Node node1,Node node2)
    {
    	int tempData=node1.getData();
    	node1.setData(node2.getData());
    	node2.setData(tempData);
    }
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		Test2 test2=new Test2();
		try 
		{
			test2.createDoubleDirList();
		} 
		catch (IOException e) 
		{
			System.out.println("输入输出异常");
		}
		test2.printFromFirstToLast();
		test2.printFromLastToFirst();
		test2.printFromLargeToSmall();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -