こんにちは、私は C# を使用しており、MainWindow から関数 Pop(Node クラス) を呼び出そうとしています。pop メソッドは、ポップされた値を返し、スタックから削除する必要があります。関数は機能しており、トップ値は関数内から削除されていますが、MainWindow では、スタックは同じように見えます (LinkedList は変更されません)。これは私の Node クラスと Pop 関数です。
public class Node
{
#region Constructor and Declarations
public int custId;
public Node next;
//other fields
public Node(int _data, Node _next)
{
this.custId = _data;
if (_next != null)
this.next = _next;
else
this.next = null;
}
public Node()
{
}
#endregion
//Make Stack
public Node MakeList()
{
Node slist1 = new Node(1, null);
Node slist2 = new Node(2, null);
Node slist3 = new Node(3, null);
Node slist4 = new Node(4, null);
Node slist5 = new Node(5, null);
slist1.next = slist2;
slist2.next = slist3;
slist3.next = slist4;
slist4.next = slist5;
return slist1;
}
#region PopCustomer
public int pop(Node stacktop)
{
Node temp;
int removedCustId = 0;
if (stacktop == null)
return -1;
else
{
temp = stacktop;
removedCustId = temp.custId;
stacktop = temp.next;
temp = null;
}
return removedCustId;
}
#endregion
mainWindow でスタックを作成し、Pop を呼び出します。しかし、スタックは同じように見えます - CustID が 1->2->3->4->5 であり、2->3->4->5 ではありません
//MAIN WINDOW
#region MainWindow
Node stackTop = new Node();
stackTop=stackTop.MakeList();
int popedItem = stackTop.pop(stackTop);//STACK LOOKS SAME - with CustIDs 1->2->3->4->5
#endregion
/
ありがとう、クリシュナ