本篇内容介绍了“关于链表的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 单向链表1.1 单向链表原理图单向链表的一个链结点包含数据域和下一个链结点的指针。头结点也包含数据域和指针域,但是一般为了方便查找,头节点不写数据,最后一个结点的指针指向空。1.2 实现单向链表的存储等操作创建一个链结点的实体类1.2.1 插入一个节点在头节点后插入一个结点,第一步需要将新插入的结点指向头结点指向的结点,第二步将头结点指向新插入的结点。插入结点只需要改变一个引用,所以复杂度为O(1)。1.2.2 头结点后删除一个结点在头结点后删除一个结点,就是让头结点指向这个结点的下一个结点。复杂度也是O(1)。1.2.3 根据数据域查找结点查找需要比对每个结点的数据,理论上查找一个结点平均需要N/2次,所以复杂度为O(N)。1.2.4 根据数据与删除结点查找需要比对每个结点的数据,理论上删除一个结点平均需要N/2次,所以复杂度为O(N)。二 双端链表2.1 双端链表原理图双端链表是在单向链表的基础上,头结点增加了一个尾结点的引用。2.2 实现双端链表的存储等操作2.2.1 从头部插入结点如果链表为空,则设置尾结点就是新添加的结点。复杂度为O(1)。2.2.2 从尾部插入结点如果链表为空,则设置头结点为新添加的结点,否则设置尾结点的后一个结点为新添加的结点。复杂度为O(1)。2.2.3 从头部进行删除判断头结点是否有下一个结点,如果没有则设置尾结点为null,复杂度为O(1)。三 双向链表3.1 双向链表原理图每个结点除了保存对后一个结点的引用外,还保存着对前一个结点的引用。3.2 实现双向链表的存储等操作链结点实体类3.2.1 从头部插入结点如果链表为空,则设置尾结点为新添加的结点,如果不为空,还需免费云主机、域名要设置头结点的前一个结点为新添加的结点。插入结点只需要改变两个结点的引用,所以复杂度为O(1)。3.2.2 从尾部插入结点如果链表为空,则设置头结点为新添加的结点,否则设置尾结点的后一个结点为新添加的结点。同时设置新添加的结点的前一个结点为尾结点。插入结点只需要改变1个结点的引用,所以复杂度为O(1)。3.2.3 从头部删除结点判断头结点是否有下一个结点,如果没有则设置尾结点为null,否则设置头结点的下一个结点的prev为null。复杂度也为O(1)。3.2.4 从尾部删除结点如果头结点后没有其他结点,则设置头结点为null,否则设置尾结点的前一个结点的next为null,设置尾结点为前一个结点。复杂度为O(1)。“关于链表的知识点有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云技术网站,小编将为大家输出更多高质量的实用文章!
这篇文章主要介绍了PHP语法是怎么样的,具有一定借鉴免费云主机、域名价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基础 PHP 语法PHP 脚本可放置于文档中的任何位置。PHP 脚本以 结尾:PHP 文件的默…