您的位置:首页 > 财经 > 产业 > 怎么做网页插件_网络营销推广与策划第二版答案_百度经验登录入口_seo关键词推广优化

怎么做网页插件_网络营销推广与策划第二版答案_百度经验登录入口_seo关键词推广优化

2024/11/16 21:28:53 来源:https://blog.csdn.net/tang1389764/article/details/143308314  浏览:    关键词:怎么做网页插件_网络营销推广与策划第二版答案_百度经验登录入口_seo关键词推广优化
怎么做网页插件_网络营销推广与策划第二版答案_百度经验登录入口_seo关键词推广优化

数据结构是计算机科学中的一个核心概念,它是指数据的组织、管理和存储方式,以及数据元素之间的关系。数据结构通常用于允许高效的数据插入、删除和搜索操作。

数据结构大致分为几大类:

线性结构:数组、链表、栈、队列等。

非线性结构:树、二叉树、堆、图等。

散列:哈希表。

索引:B树、B+树等。

常见数据结构

1 栈

栈(stack),它是一种运算受限的线性表,遵循后进先出(Last In First Out,LIFO)原则的数据结构。

栈常见的操作

  • push(element): 添加一个新元素到栈顶位置.

  • pop():移除栈顶的元素,同时返回被移除的元素。

  • peek():返回栈顶的元素,不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)。

  • isEmpty():如果栈里没有任何元素就返回true,否则返回false。

  • clear():移除栈里的所有元素。

  • size():返回栈里的元素个数。这个方法和数组的length属性很类似。

栈类似一个桶,后进先出。

栈操作的代码实现:

先创建一个类,初始化一个空列表和一个容量阈值,再创建2个方法分别判断传入数据时,我们初始化的列表这时是否为空,或者是否为满。

创建入栈和出栈方法。

入栈方法中要调用前面判断是否未满的函数,如果满,则返回异常,未满则将数据放入列表最后

出栈方法中要调用前面判断是否为空的函数,如果空,则返回异常,未空则将列表最后一个数据删除,并返回这个数据

返回现在栈中最上层的数据

出栈入栈操作执行如下:

2 链表

链表是一条相互链接的数据节点表。每个节点由两部分组成:数据和指向下一个节点的指针。

单向链表

插入

尾部插入

从头结点开始逐个遍历链表,直到找到next=null,表示为最后一个节点,再将最后节点的next指向新增节点。

头部插入

如果头节点的next=null表示链表为空,直接将头节点的next指向新增节点

如果头节点的next!=null,表示头节点后已存在后续节点,需要将新增节点插入到头节点和后续节点中间:

1.获取头节点的后续节点,定义一个临时节点,将该节点指向临时节点

2.将头节点的next指向新增节点

3.新增节点的next指向临时节点

遍历

从头结点开始,通过next遍历,直到next=null

删除

将前面节点的指针直接指向后续节点(直接跳过该节点)即删除。

代码实现

这个类定义了链表中的节点。每个节点包含两个属性:

  • data: 存储实际的数据值,默认为 None
  • next: 指向下一个节点的引用,默认为 None

初始化一个空的链表,创建一个 head 节点,该节点不存储任何数据,仅作为链表的起点,方便后续的操作。

判断头节点后是否有数据节点,如果没有,则将新节点连接到头节点后。

向链表尾部追加一个新节点。

创建一个新的节点 new_node 并设置其 data 属性。

如果链表为空(即 self.head.next 为 None),则直接将新节点连接到头部之后。

否则,遍历链表直到找到最后一个节点,并将其 next 设置为新节点。

向链表头部插入一个新节点。

  • 创建一个新的节点 new_node 并设置其 data 属性。
  • 如果链表为空(即 self.head.next 为 None),则直接将新节点连接到头部之后。
  • 否则,将新节点的 next 指向当前头部的下一个节点,并更新头部的 next 指向新节点。

从链表中删除第一个匹配 data的节点。

  • 首先检查链表是否为空。
  • 遍历链表直到找到数据值为 data 的节点。
  • 将找到的节点的 next 更新为其下一个节点的 next,从而删除该节点。

显示链表中的所有数据。

从头部开始遍历链表,打印每个节点的数据。

当遇到 None 时停止遍历。

调用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com