目录
1.想:将B站视频《C#数据结构与算法》--2020 最新精讲版:提高学习效率,所以编写此系列博客
2.因为这个系列教程评价目前是最好的,所以想看视频、写代码、写博客
1.你可以忘记代码,也不能忘记 演示动画:因为记住了演示动画,思路就有了,写代码就有了思路
1.运行结果:官方Stack栈耗时真的很少,因为他们不开源,他们有自己的算法工程师,进行不断地优化
一.目的
1.想:将B站视频《C#数据结构与算法》--2020 最新精讲版:提高学习效率,所以编写此系列博客
2.因为这个系列教程评价目前是最好的,所以想看视频、写代码、写博客
二.参考
1.C#数据结构与算法》-3-4 删除链表中的结点
3-4 删除链表中的结点https://www.bilibili.com/video/BV1gE41157pC?p=12
- 学习的视频
三.注意
1.你可以忘记代码,也不能忘记 演示动画:因为记住了演示动画,思路就有了,写代码就有了思路
四.操作:1:成功
1.时间复杂度分析
1.运行效果:数组栈:运行时间比较
1.1 扩容和不扩容的数组栈时间比较
/// <summary>
///[功能:测试栈耗时] [Author:XZY Time:20211022 视频编号:4-3 链表栈]
/// </summary>
/// <param name="stack">栈</param>
/// <param name="N">栈里面的长度</param>
/// <returns></returns>
public static long TestStack(IStack<int> stack,int N)
{
Stopwatch t = new Stopwatch();
t.Start();
for (int i = 0; i < N; i++)
stack.Push(i);
for (int i = 0; i <N; i++)
stack.Pop();
t.Stop();
return t.ElapsedMilliseconds;
}
static void Main(string[] args)
{
int N = 1000000;
//Array1Stack<int> array1Stack = new Array1Stack<int>();//不扩容的方式创建对象
Array1Stack<int> array1Stack = new Array1Stack<int>(N);//扩容的方式创建对象
long t1 = TestStack(array1Stack, N);
Console.WriteLine("array1Stack‘time=" + t1 + "ms");
}
1.运行效果:
- 链表创建时候是:不连续、访问空的地址、还需要做好下一个节点的连接,所以比较耗时
/// <summary>
///[功能:测试栈耗时] [Author:XZY Time:20211022 视频编号:4-3 链表栈]
/// </summary>
/// <param name="stack">栈</param>
/// <param name="N">栈里面的长度</param>
/// <returns></returns>
public static long TestStack(IStack<int> stack,int N)
{
Stopwatch t = new Stopwatch();
t.Start();
for (int i = 0; i < N; i++)
stack.Push(i);
for (int i = 0; i <N; i++)
stack.Pop();
t.Stop();
return t.ElapsedMilliseconds;
}
static void Main(string[] args)
{
int N = 1000000;
Array1Stack<int> array1Stack = new Array1Stack<int>();//不扩容的方式创建对象
//Array1Stack<int> array1Stack = new Array1Stack<int>(N);//扩容的方式创建对象
long t1 = TestStack(array1Stack, N);
Console.WriteLine("array1Stack‘time=" + t1 + "ms");
LinkedList1Stack<int> linkedList1Stack = new LinkedList1Stack<int>();
long l2 = TestStack(linkedList1Stack, N);
Console.WriteLine("linkedList1Stack‘time=" + l2 + "ms");
}
1.运行结果:官方Stack栈耗时真的很少,因为他们不开源,他们有自己的算法工程师,进行不断地优化
//测试:3:Stack栈 的耗时
Stack<int> stack = new Stack<int>(N);
Stopwatch t = new Stopwatch();
t.Start();
for (int i = 0; i < N; i++)
stack.Push(i);
for (int i = 0; i < N; i++)
stack.Pop();
t.Stop();
Console.WriteLine("Stack‘time=" + t.ElapsedMilliseconds + "ms");