私はスタックを構築するために、カーソルを使用したいが、私は本当に全体のカーソルの実装リストのアレイベースの実装(カーソルの実装)
public class cursor {
private int header;
static cursorNode[ ] cursor;
private static final int SPACE_SIZE = 100;
static
{
cursor = new cursorNode[ SPACE_SIZE ];
for(int i = 0; i < SPACE_SIZE; i++)
cursor[ i ] = new cursorNode(null, i + 1);
cursor[ SPACE_SIZE - 1 ].next = 0;
}
public static int alloc()
{
int p = cursor[ 0 ].next;
if(p == 0)
return 0;
cursor[ 0 ].next = cursor[ p ].next;
cursor[ p ].next=0;
return p;
}
public static void free(int p)
{
cursor[ p ].next = cursor[ 0 ].next;
cursor[ 0 ].next = p;
}
public cursor()
{
header = alloc();
cursor[ header ].next = 0;
}
public boolean isEmpty()
{
return cursor[ header ].next == 0;
}
public void addFirst(int l, Object x){
int temp=alloc();
cursor[temp].element=x;
cursor[temp].next=cursor[l].next;
cursor[l].next=temp;
}
public boolean removeFirst(int l){
if(cursor[l].next==0)
return false;
int p =cursor[l].next;
cursor[l].next=cursor[p].next;
free(p);
return true;
}
public void print(int l){
int p=cursor[l].next;
while(p!=0){
System.out.print(cursor[p].element);
p=cursor[p].next;
}
}
}.
public class cursorNode {
Object element;
int next;
public cursorNode(Object x){
this(x, 0);
}
public cursorNode(Object x, int n)
{
element = x;
next = n;
}
}
を理解していないカーソルの実装とどのように何であるか説明することができますそれを使ってスタックを構築します。 push()はaddFirst()を使用し、pop()はremoveFirst()を使用することを理解していますが、top()の動作はうまくいきます。
私はあなたが何を求めているのか正確には分かりません。あなたが投稿したコードの説明や、 'top'メソッドを実装する方法の提案を探していますか? – sprinter
私は両方を探しています。しかし、このコードを使用するスタックを提供することができれば、これは素晴らしいことです。 – Nicky