如何理解栈?
后进先出,先进后出,这就是典型的栈结构。栈是一种受限的线性表,只允许在一段插入和删除数据。数组和链表可以替代栈,但是数组和链表暴露了太多的接口,操作上太灵活自由,使用时不可控,容易出错。
当一个数据集合只在一端插入和删除数据,并满足后进先出,先进后出的特性,这时我们就应该首选“栈”这种数据结构。
如何实现一个栈?
栈主要包含两个操作,入栈和出栈。实现栈可以通过数组实现也可以通过链表实现,用数组实现的叫顺序栈,用链表实现的叫链式栈。顺序栈会涉及到动态扩容的操作,扩容时申请一块更大的内存空间,先把原先的数据复制进去然后再进行入栈操作。
网友评论