pta 6—9循环单链表的插入(java)

 输入样例1:

5 2 8 7 4 6
4 15

输出样例1:

2 8 7 4 15 6

输入样例2:

5 2 8 7 4 6
7 15

输出样例2:

error

函数接口定义:

方法定义:
void insert(int pos, int data)  throws Exception 

参数pos表示插入位置 ,参数data表示插入的新元素 。
插入失败时,抛出异常。

裁判测试程序样例:

import java.util.Scanner;
class Input {
       private static Scanner sc = new Scanner(System.in);
       static int inputInt(){
           return sc.nextInt();
       }
  }
  
 class  Node{
     int  data;
     Node    next;
      
     public Node( ){
          data=0 ;  
          next=null;  
     }  

     public Node( int  obj , Node nt) {
          data=obj ;  
          next=nt;  
     }  
}

class LinkList{
    public Node head ;
    
    public LinkList () //创建循环单链表 代码省略
    {
                        ………
   }
   
   public void display()  //显示线性表的所有元素 代码省略
   {
                    ………
    }
    
  /* 请在这里填写答案 */  

 }  

public class Main{
    public static void main(String args[]){        
        LinkList L = new LinkList();
        int pos = Input.inputInt();
        int data = Input.inputInt();
        try{
            L.insert(pos,data);
            L.display();
        }
        catch(Exception e){
            System.out.println(e.getMessage());    
        }
        
    }
}

insert函数:

  void insert(int pos, int data) throws Exception{
	   Node s = head;
      
	   int j=0;
	   Node t = new Node();
	   t.data = data;
	   while(s.next.data!=head.data) {
		   j++;
		   s = s.next;
           
	   }
    
 if(pos==0) {
		   t.next=s.next;
		   s.next = t;
	   }
      else{
	   s = head.next;
	   for(int i=0;i<j;i++) {
		   if(i==pos-1) {
			   t.next = s.next;
			   s.next=t;
			   break;
		   }
		   s = s.next;
		  
	   }
      }
	   if(pos>j) {
		   throw new IllegalArgumentException("error");
	   }
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值