Ben yığını oluşturmak üzere bir imleç kullanmak istiyorum, ama gerçekten dizi tabanlı uygulamalar (imleç uygulaması)
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;
}
}
açıklayabilir bütün cursor uygulamaları anlamıyor ne imleç uygulanması ve nasıl bir yığın oluşturmak için kullanmak. Anında push() addFirst() işlevini kullanacağını ve pop() removeFirst() yöntemini kullanacağını, ancak nasıl üst() işlevinin kullanılacağını anlıyorum.
Tam olarak ne sorduğundan emin değilim. Gönderdiğiniz kodun bir açıklamasını mı yoksa bir 'top' yöntemini nasıl uygulayacağınıza dair öneriler mi arıyorsunuz? – sprinter
İkisini de arıyorum. ancak bu kodu şu an için kullanan bir yığın sağlayabiliyorsanız, bu harika olur. – Nicky