和之前文章数组栈类似。
1.定义栈接口
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 数组栈
{
public interface IStack<E>
{
//栈中元素数量
int Count {
get; }
//是否为空
bool IsEmpty {
get; }
//添加
void Push(E e);
//删除
E Pop();
//查找
E Peek();
}
}
2.实现接口
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 数组栈;
using 链表;
namespace 链表栈
{
class LinkedList1Stack<E> : IStack<E>
{
private LinkedList1<E> list;
public LinkedList1Stack()
{
list = new LinkedList1<E>();
}
public int Count {
get {
return list.Count; } }
public bool IsEmpty {
get {
return list.IsEmpty; } }
public E Peek()
{
return list.GetFirst();
}
public E Pop()
{
return list.RemoveFirst();
}
public void Push(E e)
{
list.AddFirst(e);
}
public override string ToString()
{
return "Stack:top"+list.ToString();
}
}
}
这里给出链表底层实现的代码,之前文章有提到,我直接用呢
using System;
using System.Collections

本文介绍了使用链表作为底层数据结构实现的栈接口,包括添加、删除、查找等操作。链表栈的优势在于头部操作的时间复杂度为O(1),与数组栈相比更高效。示例代码展示了如何创建和操作链表栈。
最低0.47元/天 解锁文章
219

被折叠的 条评论
为什么被折叠?



