重温数据结构:有序循环链表的插入

注意:有序循环链表插入后,需要保持原来的顺序

/*
 * $filename: MyCircularLinkedList.java,v $
 * $Date: 2014-3-10  $
 * Copyright (C) ZhengHaibo, Inc. All rights reserved.
 * This software is Made by Zhenghaibo.
 */
package edu.njupt.zhb;
/*
 *@author: ZhengHaibo  
 *web:     http://blog.csdn.net/nuptboyzhb
 *mail:    [email protected]
 *2014-3-10  Nanjing,njupt,China
 */
/**
 * 有序循环链表
 */
public class MyCircularLinkedList {
	/**
	 * 定义节点
	 */
	public class Node{
		public Node next;
		public int data;
	}
	/**
	 * 有序循环链表
	 * @param head 有序循环链表的头
	 * @param data 带插入的数据
	 */
	public void insert(Node head,int data){
		if(head==null){
			head=new Node();
			head.data=data;
			//head.next=head;
			System.out.println("insert "+data);
			return;
		}
		Node p = head.next;
		Node preNode = head;
		while(p!=head){
			if(data>=preNode.data&&data<=p.data){//当前插入值的大小恰好在preNode和p之间
				break;
			}
			if((data>=preNode.data||data<=p.data)&&(p.data


你可能感兴趣的:(【算法】)