2017-03-12 12 views
-1

私はユーザーがint要素を入力できるようにしなければなりません。この要素は、作成されたlinkedListに最初または最後、または特定の位置に挿入されます。特定のサイズのlinkedListを作成するにはどうすればよいですか?

linkedList list = new linkedList(); 

要素をinstertするために、私はこのコードを使用しています:

public void insert(int val){ 
     Node nptr = new Node(val, null, null); 
     Node tmp, ptr;   
     boolean ins = false; 
     if (start == null){    
      nptr.setLinkNext(nptr); 
      nptr.setLinkPrev(nptr); 
      start = nptr; 
      end = start;    
     } 
     else if (val <= start.getData()){ 
      nptr.setLinkPrev(end); 
      end.setLinkNext(nptr); 
      start.setLinkPrev(nptr); 
      nptr.setLinkNext(start); 
      start = nptr; 
     } 
     else if (val >= end.getData()){ 
      end.setLinkNext(nptr); 
      nptr.setLinkPrev(end); 
      nptr.setLinkNext(start); 
      start.setLinkPrev(nptr); 
      end = nptr; 
     } 
     else{ 
      tmp = start; 
      ptr = start.getLinkNext(); 
      while (ptr != null){ 
       if (val >= tmp.getData() && val <= ptr.getData()){ 
        tmp.setLinkNext(nptr); 
        nptr.setLinkPrev(tmp); 
        nptr.setLinkNext(ptr); 
        ptr.setLinkPrev(nptr); 
        ins = true; 
        break; 
       } 
       else{ 
        tmp = ptr; 
        ptr = ptr.getLinkNext(); 
       } 
      } 
      if (!ins){ 
       tmp.setLinkNext(nptr); 
       nptr.setLinkPrev(tmp); 
      } 
     } 
     size++; 
    } 

を私は必要なものと、リストの最大サイズは、10個の要素に達するまでの間だけ、これを行うようにすることです。私はそれをどのように達成するのですか?

また、スイッチとケースを使用しています。これはコードが巨大であるため、完全なコードではなく、その部分だけです。

  case 1 : 
       System.out.println("Enter integer element to insert"); 
       list.insert(scan.nextInt());      
       break; 
+2

Stackoverflowはあなたに宿題をするように人々に依頼する場所ではありません – Shmuel

+0

私自身が答えを見つけることができたら、私は尋ねません... –

答えて

1

さて、あなたが使用することができます

list.size() 

をリンクリスト内の要素の数を取得し、それに応じて追加します。

これが実現できない場合は、あらかじめ定義された要素数を超えない独自のリンクリストを作成できます。

または単にリンクリストを保持するクラスを持つことができます。そして、そのクラス内のそのリンクリストに関連するすべてのイベントを処理します。あなたはオブジェクトを介してアクセスする必要があります。

このトピックは静かです。多くの方法があります、いくつかの研究を行い、どのような最高のスーツです。

0

これは、挿入前のLinkedListの大きさをチェックするために、あなたのケースで非常に容易になるだろう:

if(list.size()>=10){//Do something...} 

そうでない場合は、LinkedListの構造のない指定された最大サイズはありません。

+0

彼は** raw linkedlist **について話しています。 ** **および** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** – ShayHaned

+0

まあ、そのような場合は、単純なカウンタを追加するだけでよいでしょう。 – NickitaX

+1

ええ、あなたはあなたの答えを受け入れるようにしたい場合は**簡単なカウンターの編集**をしなければなりません:)それはあなたのお手伝いをしようとしているすべての方法です**あなたの答えを正しいものとして受け入れる方法** :) – ShayHaned

関連する問題