数组:
int[] arraytest = new int[10];
arraytest[0] = 10;
Console.WriteLine(arraytest[0]);
int[] arraytest2 = { 1, 2, 3, 4, 5, 6 };
for (int i = 0; i < arraytest2.Length; i++)
{
Console.WriteLine(arraytest2[i]);
}
栈-数组实现:
using System;
namespace DS_ALGCode
{
/// <summary>
/// 栈-数组实现
/// </summary>
public class S_Stack
{
public int MaxSize;
public int Top = -1;
public int[] Stack;
public S_Stack(int size)
{
MaxSize = size;
Stack = new int[MaxSize];
}
public bool IsFull { get => Top == MaxSize - 1; }
public bool IsEmpty { get => Top == -1; }
//入栈
public void Push(int data)
{
if (IsFull)
{
Console.WriteLine("栈满");
return;
}
Stack[++Top] = data;
}
//出栈
public int Pop()
{
if (IsEmpty)
{
Console.WriteLine("栈空");
return 0;
}
return Stack[Top--];
}
//列栈
public void ShowStack()
{
for (int i = Top; i >= 0; i--)
{
Console.WriteLine($"Stack[{i}] = {Stack[i]}");
}
}
}
}
栈-链表实现:
using System;
namespace DS_ALGCode
{
/// <summary>
/// 栈-链表实现
/// </summary>
public class S_StackByLink
{
public Node Top;//栈顶
public int Size=0;
public bool IsEmpty { get => Top == null; }
public void Push(int data)
{
Node it = new Node(data);
if (IsEmpty)
{
Top = it;
}
else
{
it.Next = Top;//当前栈顶为新数据的next
Top = it;//栈顶改为新数据
}
Size++;
}
public int Pop()
{
if (IsEmpty)
{
Console.WriteLine("栈空");
return 0;
}
else
{
int data = Top.Data;
Top = Top.Next;//栈顶改为当前的next
Size--;
return data;
}
}
public void ShowStack()
{
Node curNode = Top;
while (curNode!= null)
{
Console.WriteLine(curNode.Data);
curNode = curNode.Next;
}
}
}
}