【C/C++ 数据结构】-栈和队列(1)

作者:学Java的冬瓜
博客主页:☀冬瓜的主页
专栏:【C/C++ 数据结构和算法】

文章目录

  • 前言
  • 一、栈
    • 1、概念
    • 2、实现栈
      • 1.1、数组实现
      • 1.2、链表实现
  • 二、队列
    • 1、概念
    • 2、实现队列
      • 2.1、数组实现
      • 2.2、链表实现
  • 三、小练
  • 总结

前言

本篇博客的学习目标是:学习栈和队列的概念实现方式。代码请期待下一篇博客。

一、栈

1、概念

:是一种特殊的线性表,它只允许在固定的一段进行插入删除操作
栈顶和栈底:进行数据插入删除的一端叫做栈顶,另一端叫做栈底。

压栈(push):数据插入栈叫做压栈/进栈/入栈。
出栈(pop):数据从栈删除叫做出栈。
注意: 1、无论压栈还是出栈,都在栈顶实现。2、栈遵循:后进先出的原则。

2、实现栈

1.1、数组实现

1>、简单分析
【C/C++ 数据结构】-栈和队列(1)_第1张图片

2>、具体实现
【C/C++ 数据结构】-栈和队列(1)_第2张图片

1.2、链表实现

【C/C++ 数据结构】-栈和队列(1)_第3张图片
1>、双向链表实现栈
【C/C++ 数据结构】-栈和队列(1)_第4张图片
2>、单链表实现栈
【C/C++ 数据结构】-栈和队列(1)_第5张图片

二、队列

1、概念

队列:也是一种特殊的线性表,它只允许在一端插入,另一端删除。
对头队尾:删除的一端叫队头,插入的一端叫队尾。

2、实现队列

2.1、数组实现

【C/C++ 数据结构】-栈和队列(1)_第6张图片

2.2、链表实现

【C/C++ 数据结构】-栈和队列(1)_第7张图片

三、小练

【C/C++ 数据结构】-栈和队列(1)_第8张图片

总结

  1. 数组和链表的选择栈用数组(顺序表)队列用单链表(链表)。相对效率较高,空间浪费少。
  2. 栈和队列区别栈是在一端进行插入删除,而队列是在一端插入,另一端删除
  3. 栈顶栈底和队头队尾:栈的栈顶是插入删除的一端,另一端是栈底。而队列的队头是删除一端队尾是插入的一端
  4. 栈和队列入已经出的区别:栈的入和出顺序对结果出有影响,因为它规定只在一端入栈、出栈,栈遵循后入先出队列遵循先入先出,队列入和出的顺序对结果出不影响。
  5. 栈和队列实现:基本上是顺序表和链表的内容,比如压栈、出栈就是尾插、尾删。只是限制了一些条件。

你可能感兴趣的:(【C/C++,数据结构与算法理解及刷题】,数据结构,链表)