添加到数组 C#
Adding to an array c#
我有一个大小为 5 的数组 int Stack[]
。我想实现一个方法 Push(value)
,它将 value 推入大批。示例:如果数组为空并且我使用 Push(1)
,那么现在数组的位置 0 上有一个 1;但是如果数组有 3 个值并且我使用 Push(1)
,位置 3 将有一个 1(因为数组从 0 开始,数组中总共有 4 个值)。我该怎么做?
为此,您有 List<T>
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-6.0
当然你也可以用数组来做到这一点,但这意味着你必须为每个 Push()
执行创建一个新数组,当你可以使用列表时这是完全没有必要的
public class Stack{
int items[];
int top;
public Stack(int size){
items=new int[size];
top=0;
}
public void Push(int val){
if(!IsFull()){
items[top++]=val;
}
}
public int Pop(){
if(!IsEmpty()){
return items[--top];
}else{
//-1 is for invalid op or just you can chech before calling Pop()
//is stack empty or not
return -1;
}
}
public bool IsFull()=>top==items.Length;
public bool IsEmpty()=>top==0;
}
我有一个大小为 5 的数组 int Stack[]
。我想实现一个方法 Push(value)
,它将 value 推入大批。示例:如果数组为空并且我使用 Push(1)
,那么现在数组的位置 0 上有一个 1;但是如果数组有 3 个值并且我使用 Push(1)
,位置 3 将有一个 1(因为数组从 0 开始,数组中总共有 4 个值)。我该怎么做?
为此,您有 List<T>
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-6.0
当然你也可以用数组来做到这一点,但这意味着你必须为每个 Push()
执行创建一个新数组,当你可以使用列表时这是完全没有必要的
public class Stack{
int items[];
int top;
public Stack(int size){
items=new int[size];
top=0;
}
public void Push(int val){
if(!IsFull()){
items[top++]=val;
}
}
public int Pop(){
if(!IsEmpty()){
return items[--top];
}else{
//-1 is for invalid op or just you can chech before calling Pop()
//is stack empty or not
return -1;
}
}
public bool IsFull()=>top==items.Length;
public bool IsEmpty()=>top==0;
}