【公共基础知识】数据结构与算法(备考二)

文/南城以南hong

这是一个知识付费,知识共享的年代。我将我每天学习的内容进行总结,既是对自己的巩固,也是对你的帮助。

图片发自App

考点四:栈

(1)定义:栈,实际上也是一种线性表,只不过是一种特殊的线性表,其特殊性体现在,它的插入和删除运算都只在线性表的一端进行,而另一端是封闭的,不进行任何操作。

(2)关键词:

①栈顶(top):在栈中,允许进行插入和删除操作的一端。

②栈底(bottom):在栈中,不允许进行插入和删除操作的一端。

③空栈:没有元素的栈。

④入栈:栈的插入。

⑤栈满

⑥出栈:栈的删除。

(3)特点:

①栈也被称为“先进后出表”或“后进先出表”。

②栈具有记忆作用。

(4)运算:入栈运算和出栈运算。

考点五:队列

(1)定义:队列与栈是不太相同的线性结构,它是允许在一端进行插入,而在另一端进行删除的线性表。

(2)关键词:

①尾指针(rear):允许插入的一端称为尾部,通常用一个称为尾指针的指针指向队尾元素。

②头指针(front):允许删除的一端称为对头,常用一个称为头指针的指针指向头元素的前一个位置

(3)特征:队列又称为“先进先出”的线性表。本着先来先服务的原则。

(4)循环队列:

①定义:顾名思义,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,线性结构可供队列循环使用。

②S=0,表示循环队列为空。S=1,表示循环队列非空,并不表示满

由此判断队列空和队列满:

1)当S=0,循环队列为空,不能进行退队运算,否则“下溢”。

2)当S=1,且front=rear时,循环队列满,不能进行入队运算,否则“上溢”。

(3)经典例题:

例题①在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中有几个元素?答案:3

例题②在一个容量为15的循环队列中,若头指针front=9,尾指针rear=6,则该循环队列中有几个元素?答案:12

图片发自App

考点六:线性链表

(1)定义:线性表的链式存储结构称为线性链表。

(2)关键词:

①数据域:用于存放数据元素的值。

②指针域:用于存放与之相关数据元素的地址,也就是指向后件结点。

(3)线性链表的插入:

在线性链表的结点x之前插入一个新元素b,过程如下

①取得一个结点,该结点号为p,其数据域为b。

②使节点p指向包含x的结点。即结点p的指针域为原结点q的指针域。

③使结点q的指针域改为p,即指向元素b。

图片发自App

(4)顺序表和链表的优缺点比较

①顺序表

1)优点:随机存取表中的任意结点;无须额外表示结点间的逻辑关系。

2)缺点:插入和删除运算效率低;存储空间不便于扩充;不能动态分配存储空间。

②链表

1)优点:在进行插入和删除运算时,不需要移动元素而只需要改变指针;链表的存储空间易于扩充,并且可以动态分配。

2)缺点:需要指针域来表示数据元素之间的逻辑关系;存储密度比顺序表要低。


【敬请期待下一次更新】

上一篇:【公共基础知识】数据结构与算法(备考一)

下一篇:【公共基础知识】数据结构与算法(备考三)


声明:本人已开通维权骑士版权保护计划,转载者请务必阅读此文

你可能感兴趣的:(【公共基础知识】数据结构与算法(备考二))