数据结构 栈 队列 链表

1,栈只能从表的一端存取数据,另一端是封闭的。

2,在栈中,无论是存数据还是取数据,都必须遵循"先进后出"的原则,即最先进栈的元素最后出栈。

进栈和出栈

     基于 栈结构的特点,在实际应用中,通常只会对栈执行以下两种操作:

  1. 向栈中添加元素,此过程被称为"进栈"(入栈或压栈);
  2. 从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);

栈的具体实现

        栈是一种 "特殊" 的线性存储结构,因此栈的具体实现有以下两种方式:

  1. 顺序栈:采用顺序存储结构可以模拟栈存储数据的特点,从而实现栈存储结构;
  2. 链栈:采用链式存储结构实现栈结构;

栈的使用

     1.栈存储结构可以帮我们检测代码中的括号匹配问题。

     2.进制转换

     3.浏览器回退功能

队列

       队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。

通常,称进数据的一端为 "队尾",出数据的一端为 "队头",数据元素进队列的过程称为 "入队",出队列的过程称为 "出队"。
       不仅如此,队列中数据的进出要遵循 "先进先出" 的原则,即最先进队列的数据元素,同样要最先出队列。

队列的实现

 队列存储结构的实现有以下两种方式:
  1. 顺序队列:在顺序表的基础上实现的队列结构;
  2. 链队列:在链表的基础上实现的队列结构;
 两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。
特点
  1. 数据从队列的一端进,另一端出;
  2. 数据的入队和出队遵循"先进先出"的原则;

队列的实际应用
实际生活中,队列的应用随处可见,比如排队买东西、医院的挂号系统等,采用的都是队列的结构。

链表

 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

正式构建一个链表类

应该具有以下属性和方法

count 元素数量

head 头节点指针

insert 向指定位置插入元素

get/set 获取和修改节点值

remove 删除指定元素

 

posted @ 2020-12-19 08:47  刘葵  阅读(77)  评论(0编辑  收藏  举报