栈的定义---Stack
锦屏ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
栈只允许在栈的末端进行插入和删除的线性表。栈具有先进后出的特性。
栈可用顺序表实现也可用链表实现。
但:
由于栈只能在末端进行操作,应使用顺序表实现。
用顺序表实现,有如下优点:
(1)方便管理
(2)效率高
(3)cpu高速缓冲存取利用率高
实现如下:
测试如下:
分析构造函数:
本来_capacity = s._capacity,但在程序中却令_capacity = s._top。
原因如下:
若sk1开辟的空间太大,而栈中的元素只占用了空间的一小部分。则在拷贝构造sk2时,只需要开辟能够存的元素的空间即可。可以节省空间。若要在sk2上进行插入元素,则可以扩容。
队列的定义---Queue
队列只允许在队尾插入,队头删除。具有先进先出的特性。
队列的实现可用顺序表也可用链表。
若采用顺序表,删除时需要移动元素。为了操作方便,采取链表实现。
实现如下:
测试如下:
此程序中有一个缺憾,因队列只能在队头和队尾进行操作。所以在打印队列时,不应该用print()。