1.リンクスタックとは何ですか
1.リンクスタック構造はリストに似ており、
2.および削除操作は、リストの先頭にあります
ある3:リンクスタックは、最初のノードの上部にスタックのスタックの底部から導か単鎖であります
チェーンスタックの長所と短所2
固定サイズのスタック領域の欠点を解決するため。
3.アイデアや慣習の実現
リンクスタックは、本質的に単一リンクリスト、構成ノードのリンクされたリストであり、それは、内部クラスの方法によって実現されるからです。ノードクラスを作成し、それは第1のアドレス文字列データノード次に、と現在のスタックを格納するためのスタックノードに格納するためのデータを定義し、クラス定義メソッドノードスタック操作外部、スタック、ポッピングように。外部内部クラスは、クラスをインスタンス化することはできません。
ノード上部を画定するために、スタック内のノードの数をカウントするため、COUNTクラスを定義する1スタック、上部にノード点のオブジェクトへの参照です。
2.着信動作は、呼び出しスタックの方法は、ノード引数コンストラクタメソッド呼び出し、着信データにデータ、及び次いでヘッドトップノードアドレスが格納node.nextに割り当てられ、この新しいでノードを印加する必要がありますトップが更新されるように、ノード点の増加は、新しいヘッドノードに、ノード、上部に割り当てられたノードの最後の新しいスタックの最初のアドレスの前にポイントを、それをプッシュします。
操作をポップ3、トップはここで注意することは、ポップ次のノードのノードを指す必要があり、我々は一時的に紛争を再生するリターンスタックデータの先頭の現在の値を保存するための中間変数を定義しなければならないということです。
カテゴリをスタック:
1 package chainStack; 2 /** 3 * @类名 stack.java 4 * @作者 修仙小华 5 * @版本 V1.0 6 * @日期 2019年7月24日-上午9:13:10 7 * @描述 8 * 9 */ 10 public class Stack { 11 int count=0; 12 Node top; 13 14 public void push(String data) { 15 Node node=new Node(data); 16 node.next=top; 17 count++; 18 top=node; 19 } 20 public String peek() { 21 return top.data; 22 } 23 public String pop() { 24 Node temp=top; 25 if (top.next==null) { 26 top=null; 27 }else { 28 top=top.next; 29 } 30 this.count--; 31 return temp.data; 32 } 33 public int size() { 34 return this.count; 35 } 36 public boolean isEmpaty() { 37 if (top==null) { 38 return true; 39 }else { 40 return false; 41 } 42 } 43 class Node{ 44 String data; 45 Node next; 46 public Node() {} 47 public Node(String data) { 48 this.data=data; 49 } 50 } 51 }
测试类:
1 public class StackTest { 2 public static void main(String[] args) { 3 Stack sta=new Stack(); 4 sta.push("张三"); 5 sta.push("李四"); 6 sta.push("王二"); 7 sta.push("麻子"); 8 System.out.println(sta.pop()); 9 System.out.println(sta.peek()); 10 System.out.println(sta.isEmpaty()); 11 System.out.println(sta.size()); 12 13 } 14 15 }