现在的位置: 首页 > 综合 > 正文

Java 双向链表

2013年10月27日 ⁄ 综合 ⁄ 共 1236字 ⁄ 字号 评论关闭

public class TwoLinkNode

{
 public int data;

 public TwoLinkNode prior, next;

 public TwoLinkNode(int k)

 {
  data = k;

  prior = next = null;

 }

 public TwoLinkNode()

 {
  this(0);
 }

 public static void main(String args[]) {
  int n = 5;
  TwoLinkNode head = create(n);

  
  insert(head, 3, 30);
  n=n+1;
  
  delete(head,4);
  n=n-1;
  
  TwoLinkNode p = head;
  System.out.print(p.data + " ");
  for (int i = 0; i < n - 1; i++) {
   p = p.next;
   System.out.print(p.data + " ");
  }

  System.out.println();
  for (int i = 0; i < n; i++) {
   System.out.print(p.data + " ");
   p = p.prior;
  }

 }

 public static TwoLinkNode create(int n) {
  TwoLinkNode p, head = new TwoLinkNode();
  head.data = (int) (100 * Math.random());

  p = head;
  for (int i = 0; i < n - 1; i++) {
   TwoLinkNode newNode = new TwoLinkNode((int) (100 * Math.random()));
   newNode.prior = p;
   p.next = newNode;
   p = newNode;
  }

  return head;
 }

 public static void insert(TwoLinkNode head,int n,int data){
  TwoLinkNode p=head;
  for(int i=0;i<n-1;i++)
  {
   p=p.next;
  }
  
  TwoLinkNode newNode=new TwoLinkNode(data);
  p.next.prior=newNode;
  newNode.next=p.next;
  p.next=newNode;
  newNode.prior=p;
  
 }
 
 public static void delete(TwoLinkNode head,int n)
 {
  TwoLinkNode p=head;
      for(int i=0;i<n-1;i++)
      {
       p=p.next;
      }
  
      p.prior.next=p.next;
      p.next.prior=p.prior;
  p.next=null;
  p.prior=null;
     
     
 }
}

 

抱歉!评论已关闭.